Proporcionar Fedora CoreOS en Alibaba Cloud (Aliyun)
Esta guía muestra como aprovisionar los nodos Fedora CoreOS (FCOS) nuevos sobre Alibaba Cloud. Fedora actualmente no publica imágenes Fedora CoreOS dentro de Alibaba Cloud, de modo que debes descargar una imagen Alibaba Cloud desde Fedora y subirla a uno de sus depósitos de Servicio de Almacenaje de Objetos (OSS).
Prerrequisitos
Fedora CoreOS los mantiene el acceso para configurar por medio de claves SSH utilizando Afterburn en esta plataforma. Una vez te ha configurado su Clave SSH en la configuración de la plataforma, puedes disponer y acceder a instancias de Fedora CoreOS con el usuario core por defecto, sin utilizar una configuración de Ignition.
Recomendamos utilizar una configuración de Ignition una vez que sea más familiar con Fedora CoreOS y desee automatizar el despliegue de sistemas.
Necesita tener acceso a una cuenta Alibaba Cloud y activar el Servicio de Almacenamiento de Objeto (OSS). Los ejemplos siguientes usan Alibaba Cloud CLI y jq como línea de comandos del procesador JSON.
Descargando una imagen Alibaba Cloud
Fedora CoreOS está diseñado para ser actualizado automáticamente con diferentes horarios por transmisión. Una vez que haya elegido la transmisión relevante, descargue, verifique y descomprima la última imagen Alibaba Cloud:
STREAM="stable"
coreos-installer download --decompress -s "${STREAM}" -p aliyun -f qcow2.xz
Alternativamente, puede descargar manualmente una imagen Alibaba Cloud desde la página de descargas. Verifique la descarga, siguiendo las instrucciones en esa página, y descomprímalo.
Subir la imagen al Alibaba Cloud
-
Crea cualquier depósito que no exista aún en su cuenta de Alibaba Cloud con un nombre globalmente único o reutilice un depósito existente:
Ejemplo al crear depósito de Alibaba Cloud OSS (Object Storage Service)REGION="ap-southeast-1" BUCKET_NAME="mi-depósito" BUCKET_URL="oss://${BUCKET_NAME}" aliyun oss mb "${BUCKET_URL}" --region="${REGION}" --acl=private -
Subida de una imagen FCOS:
Ejemplo subiendo FCOS a un depósito de Alibaba Cloud OSSDOWNLOADED_IMAGE="./image.qcow2" IMAGE_NAME="mi-imagen-fcos" IMAGE_BLOB="${IMAGE_NAME}.qcow2" aliyun oss cp "${DOWNLOADED_IMAGE}" "${BUCKET_URL}/${IMAGE_BLOB}" \ --region="${REGION}" --acl=private -
Importar imagen FCOS subida:
Ejemplo de importación de FCOS a 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) -
Espere hasta que la imagen sea importada completamente
Ejemplo de espera con un vencimiento igual a una horaaliyun ecs DescribeTasks --region="${REGION}" --TaskIds="${TASK_ID}" \ --waiter expr='TaskSet.Task[0].TaskStatus' to=Finished timeout=3600 -
Determina la id de la imagen FCOS importada:
El ejemplo determina el id de la imagen FCOS importadaIMAGE_ID=$(aliyun ecs DescribeImages --region="${REGION}" --ImageName="${IMAGE_NAME}" \ | jq --raw-output .Images.Image[0].ImageId) -
Borra el blob subido
Ejemplo al borrar el grumo subidoaliyun oss rm "${BUCKET_URL}/${IMAGE_BLOB}" --region "${REGION}"
Crear un VSwitch
No existen VPC ni conmutadores virtuales predeterminados en Alibaba Cloud. Por lo tanto, para crear cualquier instancia, se requiere un conmutador virtual. Tome alguno existente o cree uno siguiendo estos pasos.
-
Crear un VPC nuevo:
Ejemplo de creación de una VPC nuevaVPC_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) -
Toma alguna zona disponible para crear un VSwitch:
Por ejemplo tome alguna zona de disponibilidadZONE_ID=$(aliyun ecs DescribeZones --region="${REGION}" \ | jq --raw-output .Zones.Zone[0].ZoneId) -
Crear un VSwitch nuevo:
Ejemplo al crear un VSwitch nuevoVSWITCH_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)
Lanzando una instancia ECS
-
Sube una clave pública SSH al Alibaba Cloud ECS
Ejemplo de subida de una cable pública 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}" -
Crear una instancia de ECS
Ejemplo de creación de una instancia de 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)
Si el comando falla con el mensaje de error “El parámetro especificado de SystemDisk.Category no es válido.”, resuelva este asunto añadiendo el parámetro --SystemDisk.Category=cloud_essd al comando.
|
-
Asignar una dirección IPv4 pública para la instancia creada previamente
Ejemplo asignando una dirección IP públicaPUBLIC_IP=$(aliyun ecs AllocatePublicIpAddress \ --region="${REGION}" --InstanceId="${INSTANCE_ID}" \ | jq --raw-output .IpAddress) -
Iniciar la instancia
Ejemplo al iniciar una instanciaaliyun ecs StartInstance --region="${REGION}" --InstanceId="${INSTANCE_ID}" -
Espere en cuanto la instancia esté en ejecución
Ejemplo esperando y determinando la dirección IP públicaaliyun ecs DescribeInstanceStatus --InstanceId.1="$INSTANCE_ID" --region="${REGION}" \ --waiter expr='InstanceStatuses.InstanceStatus[0].Status' to=Running timeout=600 -
Conecta a la instancia nueva por medio de SSH
Ejemplo al conectarssh core@"${PUBLIC_IP}"
Puede iniciar una instancia personalizada con su archivo Ignition agregando el parámetro --UserData=$(cat <Path to your Ignition config> | base64 -w0) al comando aliyun ecs CreateInstance que crea una instancia nueva.
Want to help? Learn how to contribute to Fedora Docs ›