Creación de una imagen personalizada de Linux
Puede crear su propia imagen personalizada basada en Linuxpara importarla a IBM Cloud® Virtual Private Cloud. A continuación, puede utilizar la imagen personalizada para desplegar un servidor virtual o un servidor nativo en la infraestructura de IBM Cloud® Virtual Private Cloud.
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ía que también puede 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 formato qcow2 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 (imagen a partir de un volumen) 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 - Comprobar los controladores virtio
-
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. Compruebe si los controladores virtio están instalados en el kernel, ejecutando el siguiente comando:
grep -i virtio /boot/config-$(uname -r)
Busque
VIRTIO_BLK
yVIRTIO_NET
en la salida. Si estas líneas no están presentes, el controlador virtio no está incluido en el kernel. -
Si las líneas
VIRTIO_BLK
yVIRTIO_NET
están presentes, verifique 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
Compruebe que el controlador
virtio blk
y sus dependenciasvirtio.ko
,virtio_pci
, yvirtio_ring
están presentes. Si las dependencias de virtio no están presentes, debes recuperar el sistema de archivos raíz.
Paso 3 - La interfaz de red se configura automáticamente
Si se definen interfaces de red en la imagen de invitado, asegúrese de que al menos una interfaz de red está configurada para configuración automática. No se pueden designar todas las interfaces para la configuración manual. 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.
-
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
-
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
- Para Ubuntu o Debian, ejecute el mandato siguiente:
-
Si la propiedad
datasources_list
existe en /etc/cloud/cloud.cfg, verifique que solo contieneNoCloud
o elimine la propiedaddatasources_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.
-
En el archivo /etc/cloud/cloud.cfg, verifique que la sección
cloud_final_modules
incluye el móduloscripts-vendor
y que está habilitado. De forma predeterminada, Red Hat Enterprise Linux y CentOS no incluyen el móduloscripts-vendor
necesario para suministrar instancias en la infraestructura de IBM Cloud VPC. Debe habilitar el móduloscripts-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 por defecto como parte de la imagen base y son necesarios para que cloud-init se ejecute correctamente:
subscription-manager
,ethtool
, yrpm
. Además, asegúrese de que estos servicios estén habilitados:cloud-init-local.service
,cloud-init.service
,cloud-config.service
ycloud-final.service
. -
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 tiene un tamaño de disco de arranque de 10 - 250 GB. Las imágenes de 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 su cubo IBM Cloud® Object Storage, haga clic en Cargar. Puede utilizar el complemento de transferencia de alta velocidad Aspera para cargar imágenes de más de 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 tiene previsto utilizar un catálogo privado para gestionar las imágenes personalizadas, primero debe importar dicha imagen en IBM Cloud VPCy, a continuación, incorporar la imagen de servidor virtual en 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.