Provisioning di Fedora CoreOS su Alibaba Cloud (Aliyun)
This guide shows how to provision new Fedora CoreOS (FCOS) nodes on Vultr. Vultr publishes FCOS images, but they are outdated, so we do not recommend using the standard Vultr images. Instead, a current FCOS release can be uploaded as a custom image.
Prerequisiti
Fedora CoreOS supports configuring access via SSH keys using Afterburn on this platform. Once you have configured your SSH Key in the platform configuration, you can provision and access Fedora CoreOS instances with the default user core, without using an Ignition config.
We recommend using an Ignition config once you are more familiar with Fedora CoreOS and want to automate the deployment of systems.
You need to have access to an Alibaba Cloud account and activated Object Storage Service (OSS). The examples below use the Alibaba Cloud CLI and jq as a command-line JSON processor.
Scaricamento di un’immagine Alibaba Cloud
Fedora CoreOS è progettato per aggiornarsi automaticamente, con programmi differenti a seconda dello stream. Una volta scelto lo stream rilevante, scarica, verifica e decomprimi l’ultima immagine per Oracle Cloud Infrastructure:
STREAM="stable"
coreos-installer download --decompress -s $STREAM -p aliyun -f qcow2.xz
In alternativa, puoi scaricare manualmente un’immagine di Azure dalla [pagina di download](https://fedoraproject.org/coreos/download/?stream=stable#cloud_images). Verifica il download seguendo le istruzioni su quella pagina e decomprimilo.
Caricamento dell’immagine su Alibaba Cloud
-
Crea un bucket con un nome globalmente unico che non esiste già nel tuo account Alibaba Cloud, oppure riutilizza un bucket esistente:
Esempio di creazione di un bucket OSS (Object Storage Service) di Alibaba CloudREGION="ap-southeast-1" BUCKET_NAME="my-bucket" BUCKET_URL="oss://${BUCKET_NAME}" aliyun oss mb "${BUCKET_URL}" --region="${REGION}" --acl=private -
Caricamento di un’immagine FCOS:
Esempio di caricamento di FCOS in un bucket OSS di Alibaba CloudDOWNLOADED_IMAGE="./image.qcow2" IMAGE_NAME="my-fcos-image" IMAGE_BLOB="${IMAGE_NAME}.qcow2" aliyun oss cp "${DOWNLOADED_IMAGE}" "${BUCKET_URL}/${IMAGE_BLOB}" \ --region="${REGION}" --acl=private -
Importazione dell’immagine FCOS caricata:
Esempio di importazione di FCOS in Alibaba Cloud ECSTASK_ID=$(aliyun ecs ImportImage \ --region="${REGION}" \ --DiskDeviceMapping.1.OSSBucket="${BUCKET_NAME}" \ --DiskDeviceMapping.1.OSSObject="${IMAGE_BLOB}" \ --ImageName="${IMAGE_NAME}" \ | jq --raw-output .TaskId) -
Attendi fino a quando l’immagine non è stata importata con successo
Esempio di attesa con un timeout pari a un’oraaliyun ecs DescribeTasks --region="${REGION}" --TaskIds="${TASK_ID}" \ --waiter expr='TaskSet.Task[0].TaskStatus' to=Finished timeout=3600 -
Determinazione dell’ID dell’immagine FCOS importata:
Esempio di determinazione dell’ID dell’immagine FCOS importataIMAGE_ID=$(aliyun ecs DescribeImages --region="${REGION}" --ImageName="${IMAGE_NAME}" \ | jq --raw-output .Images.Image[0].ImageId) -
Cancellazione del blob caricato
Esempio di cancellazione del blob caricatoaliyun oss rm "${BUCKET_URL}/${IMAGE_BLOB}" --region "${REGION}"
Creazione di un VSwitch
Non esistono VPC o VSwitch predefiniti in Alibaba Cloud. Di conseguenza, per creare qualsiasi istanza deve esistere un VSwitch. Scegline uno esistente o creane uno con i seguenti passaggi.
-
Creazione di un nuovo VPC:
Esempio di creazione di un nuovo VPCVPC_CIDR="172.16.0.0/12" VPC_NAME="fcos-test" VPC_ID=$(aliyun vpc CreateVpc --region="${REGION}" \ --CidrBlock="${VPC_CIDR}" --VpcName="${VPC_NAME}" \ | jq --raw-output .VpcId) -
Selezione di una zona di disponibilità (Availability Zone) per la creazione di un VSwitch:
Esempio di selezione di una zona di disponibilità (Availability Zone)ZONE_ID=$(aliyun ecs DescribeZones --region="${REGION}" \ | jq --raw-output .Zones.Zone[0].ZoneId) -
Creazione di un nuovo VSwitch:
Esempio di creazione di un nuovo VSwitchVSWITCH_CIDR="172.16.0.0/16" VSWITCH_NAME="${VPC_NAME}" VSWITCH_ID=$(aliyun vpc CreateVSwitch \ --region="${REGION}" \ --CidrBlock="${VSWITCH_CIDR}" \ --VpcId="${VPC_ID}" \ --VSwitchName="${VSWITCH_NAME}" \ --ZoneId="${ZONE_ID}" \ | jq --raw-output .VSwitchId)
Avvio di un’istanza
-
Caricamento di una chiave pubblica SSH su Alibaba Cloud ECS
Esempio di caricamento di una chiave pubblica SSHKEY_PAIR_NAME="fcos-key" PUBLIC_KEY_PATH="<Please fill the path to your public key>" PUBLIC_KEY_BODY=$(cat "${PUBLIC_KEY_PATH}") aliyun ecs ImportKeyPair --region="${REGION}" \ --KeyPairName="${KEY_PAIR_NAME}" --PublicKeyBody="${PUBLIC_KEY_BODY}" -
Creazione di un’istanza ECS
Esempio di creazione di un’istanza ECSINSTANCE_NAME="my-fcos-vm" INSTANCE_TYPE="ecs.t6-c1m1.large" INSTANCE_ID=$(aliyun ecs CreateInstance \ --region="${REGION}" \ --KeyPairName="${KEY_PAIR_NAME}" \ --ImageId="${IMAGE_ID}" \ --InstanceName="${INSTANCE_NAME}" \ --InstanceType="${INSTANCE_TYPE}" \ --InternetChargeType=PayByTraffic \ --InternetMaxBandwidthIn=5 \ --InternetMaxBandwidthOut=5 \ --VSwitchId="${VSWITCH_ID}" \ | jq --raw-output .InstanceId)
Se il comando fallisce con il messaggio di errore "The specified parameter SystemDisk.Category is not valid.", risolvi questo problema aggiungendo il parametro --SystemDisk.Category=cloud_essd al comando.
|
-
Allocazione di un indirizzo IPv4 pubblico per l’istanza creata in precedenza
Esempio di allocazione di un indirizzo IP pubblicoPUBLIC_IP=$(aliyun ecs AllocatePublicIpAddress \ --region="${REGION}" --InstanceId="${INSTANCE_ID}" \ | jq --raw-output .IpAddress) -
Avvio dell’istanza
Esempio di avvio di un’istanzaaliyun ecs StartInstance --region="${REGION}" --InstanceId="${INSTANCE_ID}" -
Attendere che l’istanza sia in esecuzione
Esempio di attesa e determinazione dell’indirizzo IP pubblicoaliyun ecs DescribeInstanceStatus --InstanceId.1="$INSTANCE_ID" --region="${REGION}" \ --waiter expr='InstanceStatuses.InstanceStatus[0].Status' to=Running timeout=600 -
Connessione alla nuova istanza tramite SSH
Esempio di connessionessh core@"${PUBLIC_IP}"
È possibile avviare un’istanza personalizzata con il proprio file di configurazione Ignition aggiungendo il parametro --UserData=$(cat <Path to your Ignition config> | base64 -w0) al comando aliyun ecs CreateInstance che crea una nuova istanza.
Want to help? Learn how to contribute to Fedora Docs ›