Capítulo 3. Configuración de cloud-init


Este capítulo incluye ejemplos de las tareas de configuración más comunes para cloud-init.

Su configuración de cloud-init puede requerir que añada directivas al archivo cloud.cfg y al directorio cloud.cfg.d. Por otra parte, su fuente de datos específica puede requerir que añada directivas a archivos, como un archivo de datos de usuario y un archivo de metadatos. Una fuente de datos puede requerir que cargue sus directivas en un servidor HTTP. Compruebe los requisitos de su fuente de datos y añada las directivas en consecuencia.

3.1. Creación de una máquina virtual que incluye cloud-init para un origen de datos NoCloud

Lo que sigue es un procedimiento de ejemplo para crear una nueva máquina virtual que incluya cloud-init. En este procedimiento, se crea un archivo meta-data y user-data. Su archivo meta-data incluye los detalles de la instancia. Su archivo user-data incluye información para crear un usuario y concederle acceso. A continuación, se incluyen estos archivos en una nueva imagen ISO y se adjunta el archivo ISO a una nueva máquina virtual creada a partir de una imagen de invitado KVM. En este caso, la fuente de datos es NoCloud.

Procedimiento

  1. Cree un directorio llamado cloudinitiso y muévase a él.

    Copy to Clipboard Toggle word wrap
    $ mkdir cloudinitiso
    $ cd cloudinitiso
  2. Cree un archivo llamado meta-data. Añade la siguiente información al archivo.

    Copy to Clipboard Toggle word wrap
    instance-id: citest
    local-hostname: citest-1
  3. Cree un archivo llamado user-data. Incluya la siguiente información en el archivo.

    Copy to Clipboard Toggle word wrap
    #cloud-config
    password: cilogon
    chpasswd: {expire: False}
    ssh_pwauth: True
    ssh_authorized_keys:
      - ssh-rsa AAA...fhHQ== sample@redhat.com
    Nota

    La última línea del archivo user-data hace referencia a una clave pública SSH. Encuentre sus claves públicas SSH en ~/.ssh/id_rsa.pub. Cuando intente este procedimiento de ejemplo, modifique la línea para incluir una de sus claves públicas.

  4. Utilice el comando genisoimage para crear una imagen ISO que incluya user-data y meta-data.

    Copy to Clipboard Toggle word wrap
    # genisoimage -output ciiso.iso -volid cidata -joliet -rock user-data meta-data
    
    I: -input-charset not specified, using utf-8 (detected in locale settings)
    Total translation table size: 0
    Total rockridge attributes bytes: 331
    Total directory bytes: 0
    Path table size(bytes): 10
    Max brk space used 0
    183 extents written (0 MB)
  5. Descargue una imagen de invitado KVM desde el Portal del Cliente de Red Hat al directorio /var/lib/libvirt/images.
  6. Cree una nueva VM a partir de la imagen huésped de KVM utilizando el comando virt-install. Incluya la imagen ISO que ha creado como archivo adjunto a la imagen.

    Copy to Clipboard Toggle word wrap
    virt-install \
        --memory 4096 \
        --vcpus 4 \
        --name mytestcivm \
        --disk /var/lib/libvirt/images/rhel-8.1-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \
        --disk /home/sample/cloudinitiso/ciiso.iso,device=cdrom \
        --os-type Linux \
        --os-variant rhel8.0 \
        --virt-type kvm \
        --graphics none \
        --import
  7. Acceda a su imagen como cloud-user. Su contraseña es cilogon.

    Copy to Clipboard Toggle word wrap
    citest-1 login: cloud-user
    Password:
    [cloud-user@citest-1 ~]$

Pasos de verificación

  • Compruebe el estado de cloud-init para ver si ha completado sus tareas.

    Copy to Clipboard Toggle word wrap
    [cloud-user@citest-1 instance]$ cloud-init status
    status: done
  • cloud-init crea la disposición del directorio cloud-init bajo /var/lib/cloud cuando se ejecuta, y actualiza o cambia ciertos contenidos del directorio basándose en las directivas que has especificado.

    Por ejemplo, puede confirmar que la fuente de datos es NoCloud comprobando el archivo de la fuente de datos.

    Copy to Clipboard Toggle word wrap
    $ cd /var/lib/cloud/instance
    $ cat datasource
    DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0][dsmode=net]

    cloud-init copia los datos del usuario en /var/lib/cloud/instance/user-data.txt.

    Copy to Clipboard Toggle word wrap
    $cat user-data.txt
    #cloud-config
    password: cilogon
    chpasswd: {expire: False}
    ssh_pwauth: True
    ssh_authorized_keys:
      - ssh-rsa AAA...fhHQ== sample@redhat.com

    Estos son ejemplos. El diseño del directorio cloud-init incluye mucha más información.

Nota

En el caso de OpenStack, la Guía de instancias e imágenes incluye información para configurar una instancia mediante cloud-init. Consulte Creación de una instancia personalizada para conocer los procedimientos específicos.

Recursos adicionales

Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat, Inc.