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

Cómo simular un servidor MariaDB en GNS3

MariaDB es uno conocido y reputado servidor de bases de datos. Es similar a MySQL y permite almacenar y gestionar una gran cantidad de información. En este post se explica cómo simularlo en un escenario de GNS3.

Leer

Cómo crear una instancia basada en un volumen en OpenStack

OpenStack es un proyecto de cloud computing (computación en la nube) de software libre y código abierto. Ofrece una estructura como servicio (IaaS) y permite virtualizar equipos en los servidores en los que esté configurado. En este post se muestra, a través de un ejemplo práctico cómo se puede crear una instancia basada en un volumen en OpenStack y cómo se puede volcar el contenido de un sistema a un nuevo volumen con mayor capacidad de almacenamiento.

Leer

Configuración del protocolo HTTPS para el acceso a una aplicación web

Para usar HTTPS en una aplicación web es necesario configurar el protocolo HTTPS en el servidor web en el que se aloja. En este post se recoge una breve guía con los pasos a seguir.

Leer