Uso de cloud-init con libvirt

Índice

Para configurar una máquina virtual con cloud-init usando libvirt se necesitan tres ficheros: network-config, meta-data y user-data. En este caso, los dos primeros están vacíos. El fichero user-data incluye la configuración necesaria para actualizar los paquetes, instalar Apache2, crear un usuario y configurar el nombre de la máquina.

#cloud-config
# Actualiza los paquetes
package_update: true
package_upgrade: true

# Instala el paquete apache2
packages:
  - apache2
  
# Configura el hostname y el fqdn
fqdn: maquina-cloud.example.org
hostname: maquina-cloud
manage_etc_hosts: true

# Crear dos usuarios, configura el acceso por sudo y añade clave pública ssh
users:
  - name: javi
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    ssh_authorized_keys: 
      - ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Cambia las contraseña a los usuarios creados
chpasswd:
  expire: False
  users:
    - name: root
      password: root
      type: text
    - name: javi
      password: usuario
      type: text

Para poder ejecutar la configuración con cloud init es necesario instalar imágenes que tengan cloud init ya instalado. En el caso de Debian, estas imágenes están publicadas en su repositorio.

Los ficheros de cloud init se indican en el comando de creación de la instancia con virt-install.

virt-install --name DebianCloud --memory 1024 --os-variant debian11 --disk=size=10,backing_store="$(pwd)/debian-12-generic-amd64-20241201-1948.qcow2" --cloud-init user-data=$(pwd)/user-data,meta-data=$(pwd)/meta-data,network-config=$(pwd)/network-config"
comments powered by Disqus

Relacionados

Manejo y uso del comando mkisofs

En este post se muestrael funcionamiento de la herramienta mkisofs para crear sistemas de fichero de tipo ISO.

Leer

Instalación de un servidor de correos satélite, redirecciones y alias

Este servidor de correo se instala en el router de un escenario formado por cuatro máquinas en el que ya existe un servidor de correos “oficial” que puede enviar y recibir correos electrónicos a Internet. Para evitar que el resto de equipos de la red puedan enviar correos hay que configurar el cortafuegos del router.

Leer

Configuración NAT en routers Linux en Openstack

En este post se usa una plantilla YAML para crear una red en Openstack y demostrar el funcionamiento del NAT. NAT (Network Address Translation o traducción de direcciones de red) es un mecanismo que consiste en modificar la información de direccionamiento en los paquetes IP que atraviesan un router.

Leer