Provisionando Fedora CoreOS Na Cloud Alibaba (Aliyun)
Esse guia mostra como provisionar novos nós Fedora CoreOS (FCOS) na Cloud Alibaba. Fedora atualmente não publica imagens do Fedora CoreOS com a Cloud Alibaba, então você deve baixar uma imagem Cloud Alibaba do Fedora e realizar o upload da imagem para um de seus baldes Serviços de Armazenamento de Objeto (OSS).
Pré-requisitos
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.
Baixando uma imagem de Cloud Alibaba
Fedora CoreOS é designado para ser atualizado automaticamente, com diferentes rotinas por stream. Uma vez que vocẽ tenha escolhido a stream relevante. baixe, verifique, e descomprima a última imagem Cloud Alibaba:
STREAM="stable"
coreos-installer download --decompress -s $STREAM -p aliyun -f qcow2.xz
Alternativamente, você pode manualmente baixar uma imagem Cloud Alibaba da página de Downloads. Verifique o download, seguindo as instruções nessa página, e descomprima-o.
Atualizando a imagem para Cloud Alibaba
-
Crie qualquer balde que ainda não exista na sua conta Cloud Alibaba com um nome único ou reuse um balde existente:
Exemplo criando um balde OSS Cloud Alibaba (Serviço de Armazenamento de Objeto)REGION="ap-southeast-1" BUCKET_NAME="meu-balde" BUCKET_URL="oss://${NOME_BALDE}" aliyun oss mb "${BUCKET_URL}" --region="${REGION}" --acl=private -
Realizando o Upload de uma imagem FCOS:
Exemplo realizando o upload do FCOS para um balde OSS Cloud AlibabaDOWNLOADED_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 -
Importe a imagem FCOS que sofreu upload:
Exemplo importando FCOS para ECS Cloud AlibabaTASK_ID=$(aliyun ecs ImportImage \ --region="${REGION}" \ --DiskDeviceMapping.1.OSSBucket="${BUCKET_NAME}" \ --DiskDeviceMapping.1.OSSObject="${IMAGE_BLOB}" \ --ImageName="${IMAGE_NAME}" \ | jq --raw-output .TaskId) -
Espere até que imagem seja importada com sucesso
Exemplo esperando um limite de tempo igual a uma horaaliyun ecs DescribeTasks --region="${REGION}" --TaskIds="${TASK_ID}" \ --waiter expr='TaskSet.Task[0].TaskStatus' to=Finished timeout=3600 -
ID determinante da Imagem FCOS importada:
Exemplo determinando ID da imagem FCOS importadaIMAGE_ID=$(aliyun ecs DescribeImages --region="${REGION}" --ImageName="${IMAGE_NAME}" \ | jq --raw-output .Images.Image[0].ImageId) -
Delete o blob que sofreu upload
Exemplo deletando blob que sofreu uploadaliyun oss rm "${BUCKET_URL}/${IMAGE_BLOB}" --region "${REGION}"
Criando um VSwitch
Não há VPCs ou VSwitches default na Cloud Alibaba. Então, para criar qualquer instância, um VSwitch deve existir. Escolha alguma existente ou crie uma com os seguintes passos.
-
Crie um novo VPC:
Exemplo criando um novo 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) -
Escolha alguma zona disponível para criar um VSwitch:
Exemplo escolhendo uma zona disponívelZONE_ID=$(aliyun ecs DescribeZones --region="${REGION}" \ | jq --raw-output .Zones.Zone[0].ZoneId) -
Criando um novo VSwitch:
Exemplo criando um novo 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)
Iniciando uma instância ECS
-
Realizando o upload de uma chave pública SSH para um ECS Cloud Alibaba
Exemplo realizando o upload de uma chave SSHKEY_PAIR_NAME="fcos-key" PUBLIC_KEY_PATH="<Prencha o caminho com a chave pública>" PUBLIC_KEY_BODY=$(cat "${PUBLIC_KEY_PATH}") aliyun ecs ImportKeyPair --region="${REGION}" \ --KeyPairName="${KEY_PAIR_NAME}" --PublicKeyBody="${PUBLIC_KEY_BODY}" -
Criando uma instância ECS
Exemplo criando instância 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 o comando falhar com a mensagem de erro "The specified parameter SystemDisk.Category is not valid.", resolva esse problema adicionando o parâmetro --SystemDisk.Category=cloud_essd ao comando.
|
-
Aloque um endereço IPv4 público para a instância criada previamente
Exemplo alocando um endereço de IPPUBLIC_IP=$(aliyun ecs AllocatePublicIpAddress \ --region="${REGION}" --InstanceId="${INSTANCE_ID}" \ | jq --raw-output .IpAddress) -
Inicie a instância
Exemplo iniciando uma instânciaaliyun ecs StartInstance --region="${REGION}" --InstanceId="${INSTANCE_ID}" -
Espere até que a instância esteja rodando
Exemplo esperando e determinando o endereço de IP públicoaliyun ecs DescribeInstanceStatus --InstanceId.1="$INSTANCE_ID" --region="${REGION}" \ --waiter expr='InstanceStatuses.InstanceStatus[0].Status' to=Running timeout=600 -
Conecte-se com a nova instância via SSH
Exemplo de conexãossh core@"${PUBLIC_IP}"
Você pode iniciar uma instância customizada com seu arquivo Ignition adicionando o parâmetro --UserData=$(cat <Caminho para sua configuração do Ignition> | base64 -w0) para o comando aliyun ecs CreateInstance que cria uma nova instância.
Want to help? Learn how to contribute to Fedora Docs ›