stackhpc.libvirt-host
Hôte Libvirt
Ce rôle configure un hôte en tant qu'hyperviseur Libvirt/KVM. Il peut également configurer des pools de stockage et des réseaux sur l'hôte.
Exigences
L'hôte doit avoir la technologie de virtualisation (VT) activée.
Variables de rôle
libvirt_host_pools
est une liste de pools à définir et à démarrer. Chaque élément doit être un dictionnaire contenant les éléments suivants :
name
Le nom du pool.type
Le type du pool, actuellement seulsdir
,logical
etrbd
sont pris en charge.lvm2
est pris en charge comme un alias pourlogical
, mais cet alias est obsolète et sera supprimé dans une future version.capacity
La capacité, en octets, du pool. (optionnel)path
Le chemin absolu vers le répertoire de base du pool.mode
Le mode d'accès du pool. Remarque : Ceci doit être spécifié comme un entier sans un zéro devant ; par exemple :mode: 755
. (uniquementdir
)owner
Le propriétaire du pool. (uniquementdir
)group
Le groupe du pool. (uniquementdir
)source
Le nom du groupe de volumes (lorsque le type estlogical
) ou le pool RBD (lorsque le type estrbd
).pvs
Une liste de volumes physiques dont se compose le groupe de volumes. (uniquement lorsque le type estlogical
)hosts
La liste des IP ou des noms d'hôtes des moniteurs Ceph. (uniquementrbd
)username
Le nom d'utilisateur utilisé pour l'authentification RADOS. (uniquementrbd
)passphrase
La phrase secrète utilisée pour l'authentification RADOS. (uniquementrbd
)
libvirt_host_networks
est une liste de réseaux à définir et à démarrer. Chaque élément doit être un dictionnaire contenant les éléments suivants :
name
Le nom du réseau.mode
Le mode de transfert du réseau,bridge
,route
,open
etnat
sont pris en charge. Laissez vide pour un mode réseau isolé.bridge
Le nom de l'interface bridge pour ce réseau.ip
Adresse IP du pont virtuel, obligatoire pour le moderoute
,open
etnat
.netmask
Masque de réseau du pont virtuel, obligatoire pour le moderoute
,open
etnat
.domain
Nom de domaine DNS pour le moderoute
,open
etnat
, par défaut au nom du réseau (optionnel).dhcp_start
Première IP de la plage DHCP en moderoute
,open
ounat
(optionnel).dhcp_end
Dernière IP de la plage DHCP en moderoute
,open
ounat
(optionnel).routes
Liste optionnelle de routes supplémentaires définies comme suit :address
Adresse de la route, requise.prefix
Préfixe de la route, requis.gateway
Passerelle de la route, requise.metric
Métrique de la route (optionnel).
ipv6
Adresse IPv6 du pont virtuel (optionnel).ipv6_prefix
Préfixe IPv6 du pont virtuel (optionnel).routesv6
Liste optionnelle de routes IPv6 supplémentaires définies comme suit :address
Adresse IPv6 de la route, requise.prefix
Préfixe IPv6 de la route, requis.gateway
passerelle de la route, requise.metric
métrique de la route (optionnel).
libvirt_host_require_vt
indique s'il faut exiger que la technologie de virtualisation Intel (VT) soit activée pour exécuter ce rôle. Bien que cela offre de meilleures performances pour les machines virtuelles, cela peut ne pas être disponible dans certains environnements. La valeur par défaut est true
.
libvirt_host_qemu_emulators
: Liste des architectures pour lesquelles installer les émulateurs système QEMU, par exemple x86
. La valeur par défaut est ['x86']
si
libvirt_host_require_vt
est false
, sinon la valeur par défaut est une liste vide.
libvirt_host_enable_efi_support
: Indique s'il faut activer le support EFI. Cela est désactivé par défaut car des packages supplémentaires doivent être installés.
libvirt_host_var_prefix
: Cela détermine le répertoire sous /var/run que libvirt utilise pour stocker l'état, par exemple les sockets de domaine unix, ainsi que le nom par défaut du fichier PID. Remplacez ceci s'il y a un conflit avec le socket par défaut, par exemple s'il pourrait être utilisé par le conteneur nova_libvirt. Par défaut, c'est ""
.
libvirt_host_socket_dir
: Emplacement où le socket libvirtd est créé. Par défaut, c'est /var/run/{{ libvirt_host_var_prefix }}
si libvirt_host_var_prefix
est défini, sinon ""
.
libvirt_host_pid_path
: Chemin vers le fichier PID qui empêche plusieurs instances du démon de se lancer. Par défaut, c'est /var/run/{{ libvirt_host_var_prefix }}.pid
si libvirt_host_var_prefix
est défini, sinon ""
.
libvirt_host_libvirtd_args
: Arguments de ligne de commande passés à libvirtd par le système d'initialisation lors du démarrage de libvirtd - des guillemets seront ajoutés.
libvirt_host_uri
: L'URI de connexion libvirt. Par défaut, c'est qemu+unix:///system?socket={{ libvirt_host_socket_dir }}/libvirt-sock
si libvirt_host_var_prefix
est défini, sinon ""
. S'il est défini sur une valeur fausse, une URI de connexion explicite ne sera pas définie lors de l'appel de virsh ou de tout module Ansible virt_.
libvirt_host_python3
: Indique si la version python3 de la bibliothèque python libvirt doit être installée. Si false
, les liants python 2 seront installés.
libvirt_host_install_daemon
: Indique s'il faut installer et activer le démon libvirt. La valeur par défaut est true
.
libvirt_host_install_client
: Indique s'il faut installer et activer le client libvirt. La valeur par défaut est true
.
libvirt_host_extra_daemon_packages
: Liste des packages supplémentaires à installer sur les hôtes du démon libvirt.
libvirt_host_extra_client_packages
: Liste des packages supplémentaires à installer sur les hôtes du client libvirt.
libvirt_host_libvirtd_conf_enabled
: Indique s'il faut configurer libvirtd.conf
. La valeur par défaut est true
.
libvirt_host_libvirtd_conf
: Configuration pour libvirtd.conf
. Dictionnaire associant des noms d'options à des valeurs. La valeur par défaut est un dictionnaire vide.
libvirt_host_qemu_conf_enabled
: Indique s'il faut configurer qemu.conf
. La valeur par défaut est true
.
libvirt_host_qemu_conf
: Configuration pour qemu.conf
. Dictionnaire associant des noms d'options à des valeurs. La valeur par défaut est un dictionnaire vide.
libvirt_host_enable_sasl_support
: Indique s'il faut activer le support de l'authentification SASL. La valeur par défaut est false
.
libvirt_host_sasl_conf_enabled
: Indique s'il faut configurer l'authentification SASL (/etc/sasl2/libvirt.conf
). La valeur par défaut est la même que celle de libvirt_host_enable_sasl_support
.
libvirt_host_sasl_conf
: Configuration pour l'authentification SASL (/etc/sasl2/libvirt.conf
). Chaîne.
libvirt_host_sasl_mech_list
: Liste des mécanismes d'authentification SASL libvirt activés. La valeur par défaut est ["SCRAM-SHA-256"]
lorsque libvirt_host_tls_listen
est true
, sinon ["DIGEST-MD5"]
.
libvirt_host_sasl_credentials
: Liste des identifiants d'authentification SASL à créer. Chaque élément est un dictionnaire contenant des éléments username
et password
. La valeur par défaut est une liste contenant un seul élément avec libvirt_host_sasl_authname
et libvirt_host_sasl_password
.
libvirt_host_sasl_authname
: Nom d'utilisateur pour l'authentification SASL. La valeur par défaut est libvirt
.
libvirt_host_sasl_password
: Mot de passe pour l'authentification SASL. La valeur par défaut est non définie.
libvirt_host_sasl_auth_conf_enabled
: Indique s'il faut configurer les identifiants d'authentification SASL (/etc/libvirt/auth.conf
). La valeur par défaut est la même que celle de libvirt_host_enable_sasl_support
.
libvirt_host_sasl_auth_conf
: Configuration pour les identifiants d'authentification SASL (/etc/libvirt/auth.conf
). Chaîne.
libvirt_host_sasl_auth_conf_filename
: Nom du fichier dans lequel écrire les identifiants d'authentification SASL. La valeur par défaut est "/etc/libvirt/auth.conf"
.
libvirt_host_sasl_auth_conf_owner
: Propriétaire du fichier dans lequel écrire les identifiants d'authentification SASL. La valeur par défaut est "root"
.
libvirt_host_sasl_auth_conf_group
: Groupe du fichier dans lequel écrire les identifiants d'authentification SASL. La valeur par défaut est "root"
.
libvirt_host_sasl_auth_conf_mode
: Mode du fichier dans lequel écrire les identifiants d'authentification SASL. La valeur par défaut est "0600"
.
libvirt_host_tcp_listen
: Indique s'il faut activer l'unité de socket TCP de systemd. La valeur par défaut est false
.
libvirt_host_tcp_listen_address
: Stream d'écoute TCP de systemd. Voir le manuel systemd.socket pour le format. La valeur par défaut n'est pas définie.
libvirt_host_tls_listen
: Indique s'il faut activer l'unité de socket TLS de systemd. La valeur par défaut est false
.
libvirt_host_tls_listen_address
: Stream d'écoute TLS de systemd. Voir le manuel systemd.socket pour le format. La valeur par défaut n'est pas définie.
libvirt_host_tls_server_cert
: Certificat serveur TLS. La valeur par défaut n'est pas définie.
libvirt_host_tls_server_key
: Clé serveur TLS. La valeur par défaut n'est pas définie.
libvirt_host_tls_client_cert
: Certificat client TLS. La valeur par défaut n'est pas définie.
libvirt_host_tls_client_key
: Clé client TLS. La valeur par défaut n'est pas définie.
libvirt_host_tls_cacert
: Certificat CA TLS. La valeur par défaut n'est pas définie.
libvirt_host_configure_apparmor
: Indique s'il faut configurer AppArmor pour les pools de stockage des répertoires.
Dépendances
Aucune
Exemple de Playbook
---
- nom : S'assurer que Libvirt est configuré
hôtes : tous
rôles :
- rôle : 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
Informations sur l'auteur
- Mark Goddard (mark@stackhpc.com)
Role to install and configure a host as a Libvirt/KVM hypervisor
ansible-galaxy install stackhpc.libvirt-host