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:
nameEl nombre del grupo.typeEl tipo del grupo, actualmente solo se admitendir,logicalyrbd.lvm2es un alias paralogical, pero este alias está obsoleto y se eliminará en una futura versión.capacityLa capacidad, en bytes, del grupo. (opcional)pathLa ruta absoluta al directorio de respaldo del grupo.modeEl 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)ownerEl propietario del grupo. (solodir)groupEl grupo del grupo. (solodir)sourceEl nombre del grupo de volúmenes (cuando el tipo eslogical) o el grupo RBD (cuando el tipo esrbd).pvsUna lista de volúmenes físicos que componen el grupo de volúmenes. (solo cuando el tipo eslogical)hostsLa lista de IPs o nombres de host de los monitores de Ceph. (solorbd)usernameEl nombre de usuario utilizado para la autenticación RADOS. (solorbd)passphraseLa 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:
nameEl nombre de la red.modeEl modo de reenvío de la red, se admitenbridge,route,openynat. Dejar vacío para un modo de red aislado.bridgeEl nombre de la interfaz de puente para esta red.ipDirección IP del puente virtual, obligatoria para los modosroute,openynat.netmaskMáscara de red del puente virtual, obligatoria para los modosroute,openynat.domainNombre de dominio DNS para los modosroute,openynat, por defecto al nombre de la red (opcional).dhcp_startPrimera IP del rango DHCP en modoroute,openonat(opcional).dhcp_endÚltima IP del rango DHCP en modoroute,openonat(opcional).routesLista opcional de rutas adicionales definidas de la siguiente manera:addressDirección de la ruta, obligatoria.prefixPrefijo de la ruta, obligatoria.gatewayPuerta de enlace de la ruta, obligatoria.metricMétrica de la ruta (opcional).
ipv6Dirección IPv6 del puente virtual (opcional).ipv6_prefixPrefijo IPv6 del puente virtual (opcional).routesv6Lista opcional de rutas IPv6 adicionales definidas de la siguiente manera:addressDirección IPv6 de la ruta, obligatoria.prefixPrefijo IPv6 de la ruta, obligatoria.gatewaypuerta de enlace de la ruta, obligatoria.metricmé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