stackhpc.libvirt-host
Host de Libvirt
Este rol configura un host como un hipervisor Libvirt/KVM. También puede configurar grupos de almacenamiento y redes en el host.
Requisitos
El host debe tener habilitada la Tecnología de Virtualización (VT).
Variables del Rol
libvirt_host_pools
es una lista de grupos para definir y comenzar. Cada elemento debe ser un diccionario que contenga los siguientes elementos:
name
El nombre del grupo.type
El tipo del grupo, actualmente solo se admitendir
,logical
yrbd
.lvm2
es un alias paralogical
, pero este alias está obsoleto y se eliminará en una futura versión.capacity
La capacidad, en bytes, del grupo. (opcional)path
La ruta absoluta al directorio de respaldo del grupo.mode
El modo de acceso del grupo. N.B.: Esto se debe especificar como un número entero sin un cero a la izquierda; por ejemplo:mode: 755
. (solodir
)owner
El propietario del grupo. (solodir
)group
El grupo del grupo. (solodir
)source
El nombre del grupo de volúmenes (cuando el tipo eslogical
) o el grupo RBD (cuando el tipo esrbd
).pvs
Una lista de volúmenes físicos que componen el grupo de volúmenes. (solo cuando el tipo eslogical
)hosts
La lista de IPs o nombres de host de los monitores de Ceph. (solorbd
)username
El nombre de usuario utilizado para la autenticación RADOS. (solorbd
)passphrase
La frase de paso utilizada para la autenticación RADOS. (solorbd
)
libvirt_host_networks
es una lista de redes para definir y comenzar. Cada elemento debe ser un diccionario que contenga los siguientes elementos:
name
El nombre de la red.mode
El modo de reenvío de la red, se admitenbridge
,route
,open
ynat
. Dejar vacío para un modo de red aislado.bridge
El nombre de la interfaz de puente para esta red.ip
Dirección IP del puente virtual, obligatoria para los modosroute
,open
ynat
.netmask
Máscara de red del puente virtual, obligatoria para los modosroute
,open
ynat
.domain
Nombre de dominio DNS para los modosroute
,open
ynat
, por defecto al nombre de la red (opcional).dhcp_start
Primera IP del rango DHCP en modoroute
,open
onat
(opcional).dhcp_end
Última IP del rango DHCP en modoroute
,open
onat
(opcional).routes
Lista opcional de rutas adicionales definidas de la siguiente manera:address
Dirección de la ruta, obligatoria.prefix
Prefijo de la ruta, obligatoria.gateway
Puerta de enlace de la ruta, obligatoria.metric
Métrica de la ruta (opcional).
ipv6
Dirección IPv6 del puente virtual (opcional).ipv6_prefix
Prefijo IPv6 del puente virtual (opcional).routesv6
Lista opcional de rutas IPv6 adicionales definidas de la siguiente manera:address
Dirección IPv6 de la ruta, obligatoria.prefix
Prefijo IPv6 de la ruta, obligatoria.gateway
puerta de enlace de la ruta, obligatoria.metric
métrica de la ruta (opcional).
libvirt_host_require_vt
es si se requiere que la Tecnología de Virtualización de Intel (VT) esté habilitada para ejecutar este rol. Si bien esto proporciona un mejor rendimiento de la máquina virtual, puede que no esté disponible en ciertos entornos. El valor predeterminado es true
.
libvirt_host_qemu_emulators
: Lista de arquitecturas para las que se deben instalar emuladores de sistema QEMU, por ejemplo, x86
. El valor predeterminado es ['x86']
si
libvirt_host_require_vt
es false
, de lo contrario, el valor predeterminado es una lista vacía.
libvirt_host_enable_efi_support
: Si se debe habilitar el soporte de EFI. Este valor predeterminado es false
, ya que se necesitan instalar paquetes adicionales.
libvirt_host_var_prefix
: Esto determina el directorio bajo /var/run que utiliza libvirt para almacenar el estado, por ejemplo, sockets de dominio unix, así como el nombre predeterminado del archivo PID. Sobrescriba esto si tiene un conflicto con el socket predeterminado, por ejemplo, si puede estar en uso por el contenedor nova_libvirt. El valor predeterminado es ""
.
libvirt_host_socket_dir
: Donde se crea el socket de libvirtd. El valor predeterminado es /var/run/{{ libvirt_host_var_prefix }}
si se establece libvirt_host_var_prefix
, de lo contrario ""
.
libvirt_host_pid_path
: Ruta al archivo PID que impide que múltiples instancias del daemon se inicien. El valor predeterminado es /var/run/{{ libvirt_host_var_prefix }}.pid
si se establece libvirt_host_var_prefix
, de lo contrario ""
.
libvirt_host_libvirtd_args
: Argumentos de línea de comandos pasados a libvirtd por el sistema de inicio cuando se inicia libvirtd - se agregarán comillas.
libvirt_host_uri
: La URI de conexión de libvirt. El valor predeterminado es
qemu+unix:///system?socket={{ libvirt_host_socket_dir }}/libvirt-sock
si se establece libvirt_host_var_prefix
, de lo contrario ""
. Si se establece en un valor falso, no se establecerá una URI de conexión explícita al llamar a virsh o a cualquiera de los módulos virt_ de ansible.
libvirt_host_python3
: Si se debe instalar la versión de python3 de los enlaces python de libvirt. Si false
, se instalarán los enlaces de python 2.
libvirt_host_install_daemon
: Si se debe instalar y habilitar el daemon de libvirt. El valor predeterminado es true
.
libvirt_host_install_client
: Si se debe instalar y habilitar el cliente de libvirt. El valor predeterminado es true
.
libvirt_host_extra_daemon_packages
: Lista de paquetes adicionales para instalar en hosts de daemon de libvirt.
libvirt_host_extra_client_packages
: Lista de paquetes adicionales para instalar en hosts de cliente de libvirt.
libvirt_host_libvirtd_conf_enabled
: Si se debe configurar libvirtd.conf
. El valor predeterminado es true
.
libvirt_host_libvirtd_conf
: Configuración para libvirtd.conf
. Diccionario que mapea nombres de opciones a valores. El valor predeterminado es un diccionario vacío.
libvirt_host_qemu_conf_enabled
: Si se debe configurar qemu.conf
. El valor predeterminado es true
.
libvirt_host_qemu_conf
: Configuración para qemu.conf
. Diccionario que mapea nombres de opciones a valores. El valor predeterminado es un diccionario vacío.
libvirt_host_enable_sasl_support
: Si se debe habilitar la autenticación SASL. El valor predeterminado es false
.
libvirt_host_sasl_conf_enabled
: Si se debe configurar la autenticación SASL
(/etc/sasl2/libvirt.conf
). El valor predeterminado es el mismo que
libvirt_host_enable_sasl_support
.
libvirt_host_sasl_conf
: Configuración para la autenticación SASL
(/etc/sasl2/libvirt.conf
). Cadena.
libvirt_host_sasl_mech_list
: Lista de mecanismos de autenticación SASL de libvirt habilitados. El valor predeterminado es ["SCRAM-SHA-256"]
cuando libvirt_host_tls_listen
es
true
, de lo contrario ["DIGEST-MD5"]
.
libvirt_host_sasl_credentials
: Lista de credenciales de autenticación SASL a crear. Cada elemento es un diccionario que contiene los elementos username
y password
. El valor predeterminado es una lista de un solo elemento que contiene libvirt_host_sasl_authname
y libvirt_host_sasl_password
.
libvirt_host_sasl_authname
: Nombre de usuario para la autenticación SASL. El valor predeterminado es libvirt
.
libvirt_host_sasl_password
: Contraseña para la autenticación SASL. El valor predeterminado es no establecido.
libvirt_host_sasl_auth_conf_enabled
: Si se deben configurar las credenciales de autenticación SASL (/etc/libvirt/auth.conf
). El valor predeterminado es el mismo que
libvirt_host_enable_sasl_support
.
libvirt_host_sasl_auth_conf
: Configuración para las credenciales de autenticación SASL
(/etc/libvirt/auth.conf
). Cadena.
libvirt_host_sasl_auth_conf_filename
: Nombre del archivo para escribir las credenciales de autenticación SASL. El valor predeterminado es "/etc/libvirt/auth.conf"
.
libvirt_host_sasl_auth_conf_owner
: Propietario del archivo para escribir las credenciales de autenticación SASL. El valor predeterminado es "root"
.
libvirt_host_sasl_auth_conf_group
: Grupo del archivo para escribir las credenciales de autenticación SASL. El valor predeterminado es "root"
.
libvirt_host_sasl_auth_conf_mode
: Modo del archivo para escribir las credenciales de autenticación SASL. El valor predeterminado es "0600"
.
libvirt_host_tcp_listen
: Si se debe habilitar la unidad de socket TCP de systemd. El valor predeterminado es false
.
libvirt_host_tcp_listen_address
: Stream de escucha TCP de systemd. Ver el man de
systemd.socket para el formato. El valor predeterminado no está establecido.
libvirt_host_tls_listen
: Si se debe habilitar la unidad de socket TLS de systemd. El valor predeterminado es false
.
libvirt_host_tls_listen_address
: Stream de escucha TLS de systemd. Ver el man de
systemd.socket para el formato. El valor predeterminado no está establecido.
libvirt_host_tls_server_cert
: Certificado del servidor TLS. El valor predeterminado no está establecido.
libvirt_host_tls_server_key
: Clave del servidor TLS. El valor predeterminado no está establecido.
libvirt_host_tls_client_cert
: Certificado del cliente TLS. El valor predeterminado no está establecido.
libvirt_host_tls_client_key
: Clave del cliente TLS. El valor predeterminado no está establecido.
libvirt_host_tls_cacert
: Certificado CA TLS. El valor predeterminado no está establecido.
libvirt_host_configure_apparmor
: Si se debe configurar AppArmor para los grupos de almacenamiento del directorio.
Dependencias
Ninguna
Ejemplo de Playbook
---
- name: Asegurarse de que Libvirt está configurado
hosts: all
roles:
- role: stackhpc.libvirt-host
libvirt_host_pools:
- name: my-pool
type: dir
capacity: 1024
path: /path/to/pool
mode: 755
owner: my-user
group: my-group
- name: lvm_pool
type: logical
source: vg1
target: /dev/vg1
pvs:
- /dev/sda3
- name: rbd-pool
type: rbd
source: rbd
hosts:
- 192.168.42.200
- 192.168.42.204
- 192.168.42.208
username: admin
passphrase: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
libvirt_host_networks:
- name: br-example
mode: bridge
bridge: br-example
- name: brnat-example
mode: nat
bridge: brnat-example
domain: example.local
ip: 192.168.133.254
netmask: 255.255.255.0
dhcp_start: 192.168.133.100
dhcp_end: 192.168.133.200
Información del Autor
- Mark Goddard (mark@stackhpc.com)
Role to install and configure a host as a Libvirt/KVM hypervisor
ansible-galaxy install stackhpc.libvirt-host