IBM Cloud Docs
Creación de una imagen personalizada de Linux

Creación de una imagen personalizada de Linux

Puedes crear tu propia imagen personalizada Linux para importarla a IBM Cloud® Virtual Private Cloud. A continuación, puede utilizar la imagen personalizada para implementar un servidor virtual o un servidor físico en la IBM Cloud® Virtual Private Cloud infraestructura.

Puede empezar con una plantilla de imagen de la infraestructura clásica de IBM Cloud. Para obtener más información, consulte Migración de un servidor virtual desde la infraestructura clásica. ¿Sabías que también puedes crear una imagen personalizada de un volumen de arranque que se adjunta a una instancia en el momento de la importación? Para obtener más información, consulte Acerca de la creación de una imagen desde un volumen.

Todas las imágenes personalizadas deben cumplir los siguientes requisitos:

  • Contener un solo archivo o volumen.
  • Estar en qcow2 formato o vhd.
  • Estar habilitado para el inicio en la nube o arrancable mediante ESXi kickstart.
  • El tamaño no supera los 250 GB.
  • El tamaño mínimo es de 10 GB. Para cualquier imagen que sea inferior a 10 GB, el tamaño se redondea a 10 GB.

Para crear imágenes personalizadas basadas en ejecución seguras utilizando la opción IBM Cloud Object Storage, consulte Preparación de la carga de trabajo. Para obtener más información sobre cómo crear imágenes basadas en ejecución seguras, IBM Secure Execution for Linux.

Para imágenes Linux , el tipo de clave SSH Ed25519 sólo se puede utilizar si el servidor SSH para el sistema operativo soporta este tipo de clave. Para obtener más información, consulte Iniciación a las claves SSH.

Realice los pasos siguientes para asegurarse de que puede desplegar correctamente su propia imagen personalizada de Linux en el entorno de infraestructura de IBM Cloud VPC. Ten en cuenta que no puedes crear una imagen a partir de un volumen de arranque cifrado que no tenga 100 GB. La operación está bloqueada.

Paso 1: Empezar con un solo archivo de imagen en formato qcow2 o VHD

Si va a crear su propia imagen personalizada basada en Linux, empiece con un solo archivo de imagen en formato qcow2 o VHD. Podría ser útil empezar con una imagen de proveedor habilitada para la nube.

Los registros de kernel son importantes en la depuración de problemas relacionados con el arranque. Para asegurarse de que los registros del kernel se imprimen en la consola serie, utilice el argumento de línea de mandatos del kernel console=ttyS0. Además, los parámetros de kernel nomodeset y nofb se utilizan para resolver problemas relacionados con la visualización durante el proceso de arranque para los kernels más antiguos que se publicaron antes de mediados de 2021. Los núcleos más nuevos utilizan la configuración de modo de vídeo en el núcleo.

Paso 2: comprueba si hay controladores virtio

  1. Asegúrese de que los controladores virtio estén instalados en la imagen del sistema operativo, junto con cualquier código que necesite virtio. Los controladores de red Virtio son necesarios para habilitar la red. Comprueba si los controladores virtio están instalados en el kernel ejecutando el siguiente comando :

    grep -i virtio /boot/config-$(uname -r)
    

    Busque VIRTIO_BLK y VIRTIO_NET en la salida. Si estas líneas no están presentes, el controlador virtio no está incluido en el kernel.

  2. Si las líneas VIRTIO_BLK VIRTIO_NET y están presentes, compruebe que los controladores están presentes en el sistema de archivos raíz temporal ejecutando el siguiente comando :

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
    

    Si está utilizando un sistema operativo Debian, utilice el mandato siguiente:

    lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio
    

    Verifique que el virtio blk controlador y sus dependencias virtio.ko, virtio_pci, y virtio_ring estén presentes. Si las dependencias virtio no están presentes, debe recuperar el sistema de archivos raíz.

Paso 3: la interfaz de red está configurada para configurarse automáticamente

Si las interfaces de red están definidas en la imagen invitada, asegúrese de que al menos una interfaz de red esté configurada en autoconfiguración. No todas las interfaces pueden configurarse manualmente. Normalmente, la interfaz se establece para utilizar DHCP. Para obtener más información sobre cómo configurar DHCP, consulte la documentación de la distribución de Linux.

Paso 4-Asegúrese de que la imagen esté habilitada para cloud-init

Asegúrese de que la imagen está habilitada para cloud-init. Se requiere cloud-init versión 0.7.9 o superior.

  1. Para determinar si cloud-init está instalado, ejecute el siguiente comando : cloud-init --version

    • En algunos casos, se puede instalar cloud-init, pero no en la variable de entorno PATH.
    • Para encontrar la vía de acceso para cloud-init en ExecStart, ejecute el mandato siguiente: systemctl cat cloud-init
  2. Para instalar cloud-init, utilice uno de los mandatos siguientes.

    • Para Ubuntu o Debian, ejecute el mandato siguiente: apt-get install cloud-init
    • Para CentOS o Red Hat, ejecute el mandato siguiente: yum install cloud-init
  3. Si la propiedad datasources_list existe en /etc/cloud/cloud.cfg, verifique que solo contiene NoCloud o elimine la propiedad datasources_list por completo. ConfigDrive no está soportado. Para obtener más información sobre los orígenes de datos, consulte orígenes de datos. Se crean imágenes de cloud-init IBM Cloud para el entorno utilizando el origen de datos NoCloud para proporcionar los metadatos.

    Se proporciona un dispositivo de bloque. Vea el ejemplo siguiente.

    blkid
    /dev/vdb: UUID="2023-03-15-16-50-02-00" LABEL="cidata" TYPE="iso9660"
    

    Este dispositivo de bloque lo encuentra cloud-init y contiene los archivos siguientes.

    • meta-data instance-id: INSTANCE_ID local-hostname: NAME
    • user-data Datos de usuario opcionales que se proporcionaron cuando se creó la instancia. Consulte Datos de usuario para obtener más información.
    • vendor-data Un archivo formateado MIME que contiene la autorización SSH de configuración de nube derivada de las claves SSH que se proporcionaron cuando se creó la instancia e información adicional de inicialización.
  4. En el archivo /etc/cloud/cloud.cfg, verifique que la sección cloud_final_modules incluye el módulo scripts-vendor y que está habilitado. De forma predeterminada, Red Hat Enterprise Linux y CentOS no incluyen el módulo scripts-vendor necesario para suministrar instancias en la infraestructura de IBM Cloud VPC. Debe habilitar el módulo scripts-vendor para suministrar una instancia de servidor virtual IBM Cloud VPC con la imagen personalizada Linux.

    Para las imágenes Red Hat Enterprise Linux (RHEL), los siguientes paquetes se incluyen de forma predeterminada como parte de la imagen base y son necesarios para que cloud-init se ejecute correctamente: subscription-manager, ethtool, y rpm. Además, asegúrese de que estos servicios estén habilitados: cloud-init-local.service, cloud-init.service, cloud-config.service y cloud-final.service.

  5. Asegúrese de configurar su imagen para utilizar SSH para iniciar sesión en su servidor virtual.

El usuario por defecto para las imágenes personalizadas basadas en RHEL es cloud-user. Para obtener más información sobre cómo habilitar cloud-init, consulte Configurar cloud-init.

Paso 5: tamaño del disco de arranque

Asegúrese de que la imagen tenga un tamaño de disco de arranque de entre 10 y 250 GB. Las imágenes que ocupan menos de 10 GB se redondean a 10 GB.

Si está personalizando un servidor virtual para migrar desde la infraestructura clásica, vuelva a Migrar un servidor virtual desde la infraestructura clásica y continúe completando los pasos de migración.

Paso 6-Cargar imagen en IBM Cloud Object Storage

Cargue su imagen en IBM Cloud Object Storage. En la página Objetos de tu IBM Cloud®Object Storage bucket, haz clic en Subir. Puede utilizar el complemento de Aspera transferencia de alta velocidad para cargar imágenes que superen los 200 MB. Para obtener más información sobre cómo cargar en IBM Cloud Object Storage, consulte Carga de datos.

Próximos pasos

Cuando se crea la imagen personalizada Linux y está disponible en IBM Cloud Object Storage, puede importar la imagen personalizada en VPC y incorporar una imagen de servidor virtual para VPC. Asegúrese de que ha otorgado acceso a IBM Cloud Object Storage para importar imágenes.

Si planea utilizar un catálogo privado para gestionar sus imágenes personalizadas, primero debe importar esa imagen a IBM Cloud VPC y, a continuación, incorporar la imagen del servidor virtual a un catálogo privado.

Después de importar la imagen personalizada, puede utilizar la imagen personalizada para desplegar un servidor virtual en la infraestructura de IBM Cloud® Virtual Private Cloud.