Proporcionar Fedora CoreOS en IBM Cloud
Esta guía le muestra como aprovisionar instancias nuevas de Fedora CoreOS (FCOS) en IBM Cloud para las arquitecturas o bien x86_64 o bien s390x.
| FCOS no es compatible con IBM Cloud Classic Infrastructure. |
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 IBM Cloud. El ejemplo de abajo utiliza la herramienta de línea de comando ibmcloud, que debe instalarse y configurarse por separado de antemano. Siga las instrucciones en https://cloud.ibm.com/docs/cli?topic=cli-install-ibmcloud-cli para instalar la CLI de ibmcloud. Necesitará tener instalados los complementos cloud-object-storage e infrastructure-service. Esto se puede hacer con:
-
ibmcloud plugin install cloud-object-storage -
ibmcloud plugin install infrastructure-service
Tras iniciar sesión con ibmcloud login, puede establecer una región de destino:
REGION='us-east' # ejecuta `ibmcloud regions` para ver las opciones
ibmcloud target -r $REGION
RESOURCE_GROUP='mi-grupo-recurso'
ibmcloud resource group-create $RESOURCE_GROUP # Crea el grupo de recursos si no existe
ibmcloud target -g $RESOURCE_GROUP
Hay otras diversas cosas que es necesario hacer en lugar, como una VPC, claves SSH, redes, permisos, etc. Desafortunadamente esta guía no es una guía IBM Cloud completa. Si es nuevo en IBM Cloud primero familiarícese con ella usando la documentación para IBM Cloud VPC networks.
Crear una Imagen
Los siguientes conjuntos de comandos le mostrarán como descargar la imagen más reciente de una secuencia, subirla al almacenamiento en la nube y luego crear la imagen en la nube en IBM Cloud. Cabe destacar que Fedora CoreOS se ofrece en tres secuencias, con diferentes planificaciones de actualización para cada una. Estos pasos muestran la secuencia stable como ejemplo, pero también pueden utilizarse para otras secuencias.
STREAM='stable'
ARCH='x86_64' # or 's390x'
coreos-installer download -s $STREAM -a $ARCH -p ibmcloud -f qcow2.xz --decompress
BUCKET='mi-depósito-único'
ibmcloud resource service-instance-create "${BUCKET}-service-instance" cloud-object-storage standard global
SERVICE_INSTANCE_ID='25df0db0-89a4-4cb8-900f-ed8b44259f80' # desde la cuenta de servicio recién creada
ibmcloud iam authorization-policy-create --source-resource-type image cloud-object-storage Reader --target-service-instance-id $SERVICE_INSTANCE_ID
FCOS_VERSION='...'
FILE="fedora-coreos-${FCOS_VERSION}-ibmcloud.${ARCH}.qcow2"
ibmcloud cos create-bucket --bucket $BUCKET --ibm-service-instance-id $SERVICE_INSTANCE_ID
ibmcloud cos upload --bucket=$BUCKET --key="${FILE}" --file="${FILE}"
IMAGE=${FILE:0:-6} # logra .qcow2
IMAGE=${IMAGE//[._]/-} # sustituye . y _ por -
[ $ARCH == 'x86_64' ] && OSNAME='fedora-coreos-stable-amd64'
[ $ARCH == 's390x' ] && OSNAME='red-8-s390x-byol'
ibmcloud is image-create "${IMAGE}" --file "cos://${REGION}/${BUCKET}/${FILE}" --os-name $OSNAME
Para s390x utilizamos --os-name=red-8-s390x-byol (un perfil de RHEL 8) aquí porque no hay actualmente un perfil fedora-coreos-stable-s390x para utilizarlo.
|
Tendrás que esperar el proceso de creación de la imagen para finalizar e ir desde pending a available antes que pueda utilizar la imagen. Monitorice con el comando siguiente:
ibmcloud is images --visibility private --status pending,available
Lanzar una instancia de Máquina Virtual (MV)
Ahora que has creado una imagen en tu cuenta, puedes iniciar una instancia de máquina virtual. Deberás especificar varios fragmentos en el comando. El siguiente ejemplo embebido a continuación son consejos sobre como obtener esa información antes de lanzar una instancia.
También necesitarás la configuración de Ignition creada antes. Aquí está representada en la instrucción de ejemplo como @example.ign, el cual indica un archivo dentro del directorio actual nombrado como example.ign.
INSTANCE_NAME='instance1'
ZONE="${REGION}-1" # view more with `ibmcloud is zones`
PROFILE='bx2-2x8' # view more with `ibmcloud is instance-profiles`
VPC='r014-c9c65cc4-cfd3-44de-ad54-865aac182ea1' # `ibmcloud is vpcs`
IMAGE='r014-1823b4cf-9c63-499e-8a27-b771be714ad8' # `ibmcloud is images --visibility private`
SUBNET='0777-bf99cbf4-bc82-4c46-895a-5b7304201182' # `ibmcloud is subnets`
SSHKEY='r014-b44c37d0-5c21-4c2b-aba2-438a5b0a228d' # `ibmcloud is keys`
ibmcloud is instance-create $INSTANCE_NAME $VPC $ZONE $PROFILE $SUBNET \
--allow-ip-spoofing=true --image $IMAGE --keys $SSHKEY --user-data @example.ign
Si es necesario, primero deberá crear una subred con un comando como ibmcloud is subnet-create my-subnet $VPC --ipv4-address-count 256 --zone $ZONE.
|
Asegúrese de elegir un tipo de instancia adecuado según su arquitectura. Por ejemplo, podría usar bz2-2x8 en lugar de bx2-2x8 si su destino es s390x.
|
A continuación, si desea acceder mediante SSH a la instancia desde fuera de IBM Cloud, puede asignar una IP pública a la instancia:
FIP_NAME='floating-ip-1'
ibmcloud is floating-ip-reserve $FIP_NAME --zone=$ZONE
VNIC=$(ibmcloud is instance $INSTANCE_NAME --output json |
jq --raw-output .primary_network_attachment.virtual_network_interface.id)
ibmcloud is virtual-network-interface-floating-ip-add $VNIC $FIP_NAME
Ahora debería poder conectarse por SSH a la instancia utilizando la dirección IP asociada a la IP flotante.
ssh core@<ip address>
Want to help? Learn how to contribute to Fedora Docs ›