stackhpc.libvirt-host
Libvirt Host
Diese Rolle konfiguriert einen Host als Libvirt/KVM-Hypervisor. Sie kann auch Speicherpools und Netzwerke auf dem Host konfigurieren.
Anforderungen
Der Host sollte die Virtualisierungstechnologie (VT) aktiviert haben.
Rollenvariablen
libvirt_host_pools
ist eine Liste von Pools, die definiert und gestartet werden sollen. Jedes Element sollte ein Dictionary mit folgenden Elementen sein:
name
: Der Name des Pools.type
: Der Typ des Pools, derzeit werden nurdir
,logical
undrbd
unterstützt.lvm2
wird als Alias fürlogical
unterstützt, aber dieser Alias ist veraltet und wird in einer zukünftigen Version entfernt.capacity
: Die Kapazität, in Byte, des Pools. (optional)path
: Der absolute Pfad zum Verzeichnis des Pools.mode
: Der Zugriffsmodus des Pools. Hinweis: Dies sollte als ganze Zahl ohne führende Null angegeben werden; zum Beispiel:mode: 755
. (nurdir
)owner
: Der Eigentümer des Pools. (nurdir
)group
: Die Gruppe des Pools. (nurdir
)source
: Der Name der Volume-Gruppe (wenn der Typlogical
ist) oder RBD-Pool (wenn der Typrbd
ist).pvs
: Eine Liste von physischen Volumes, die die Volume-Gruppe ausmachen. (nur wenn der Typlogical
ist)hosts
: Die Liste der IPs oder Hostnamen der Ceph-Monitore. (nurrbd
)username
: Der Benutzername für die RADOS-Authentifizierung. (nurrbd
)passphrase
: Das Passwort für die RADOS-Authentifizierung. (nurrbd
)
libvirt_host_networks
ist eine Liste von Netzwerken, die definiert und gestartet werden sollen. Jedes Element sollte ein Dictionary mit folgenden Elementen sein:
name
: Der Name des Netzwerks.mode
: Der Weiterleitungsmodus des Netzwerks,bridge
,route
,open
undnat
werden unterstützt. Leer lassen für einen isolierten Netzwerkmodus.bridge
: Der Name der Bridge-Schnittstelle für dieses Netzwerk.ip
: IP-Adresse der virtuellen Bridge, erforderlich fürroute
,open
undnat
Modus.netmask
: Subnetzmaske der virtuellen Bridge, erforderlich fürroute
,open
undnat
Modus.domain
: DNS-Domainname fürroute
,open
undnat
Modus, standardmäßig der Netzwerkname (optional).dhcp_start
: Erste IP des DHCP-Bereichs imroute
,open
odernat
Modus (optional).dhcp_end
: Letzte IP des DHCP-Bereichs imroute
,open
odernat
Modus (optional).routes
: Optionale Liste von zusätzlichen Routen, definiert wie folgt:address
: Adresse der Route, erforderlich.prefix
: Prefix der Route, erforderlich.gateway
: Gateway der Route, erforderlich.metric
: Metrik der Route (optional).
ipv6
: IPv6-Adresse der virtuellen Bridge (optional).ipv6_prefix
: IPv6-Präfix der virtuellen Bridge (optional).routesv6
: Optionale Liste von zusätzlichen IPv6-Routen, definiert wie folgt:address
: IPv6-Adresse der Route, erforderlich.prefix
: IPv6-Präfix der Route, erforderlich.gateway
: Gateway der Route, erforderlich.metric
: Metrik der Route (optional).
libvirt_host_require_vt
gibt an, ob die Intel-Virtualisierungstechnologie (VT) aktiviert sein muss, um diese Rolle auszuführen. Obwohl dies eine bessere VM-Leistung bietet, ist es möglicherweise nicht in bestimmten Umgebungen verfügbar. Der Standardwert ist true
.
libvirt_host_qemu_emulators
: Liste der Architekturen, für die QEMU-Systememulatoren installiert werden sollen, z.B. x86
. Der Standardwert ist ['x86']
, wenn libvirt_host_require_vt
false
ist, andernfalls ist der Standardwert eine leere Liste.
libvirt_host_enable_efi_support
: Ob die EFI-Unterstützung aktiviert werden soll. Dies ist standardmäßig false
, da zusätzliche Pakete installiert werden müssen.
libvirt_host_var_prefix
: Bestimmt das Verzeichnis unter /var/run, das Libvirt verwendet, um den Zustand zu speichern, z.B. Unix-Domain-Sockets, sowie den Standardnamen der PID-Datei. Überschreiben Sie dies, wenn es einen Konflikt mit dem Standard-Socket gibt, z.B. könnte es vom nova_libvirt-Container verwendet werden. Standardwert ist ""
.
libvirt_host_socket_dir
: Wo der libvirtd-Socket erstellt wird. Standardwert ist /var/run/{{ libvirt_host_var_prefix }}
, wenn libvirt_host_var_prefix
gesetzt ist, andernfalls ""
.
libvirt_host_pid_path
: Pfad zur PID-Datei, die verhindert, dass mehrere Instanzen des Daemons gestartet werden. Standardwert ist /var/run/{{ libvirt_host_var_prefix }}.pid
, wenn libvirt_host_var_prefix
gesetzt ist, andernfalls ""
.
libvirt_host_libvirtd_args
: Kommandozeilenargumente, die libvirtd vom Init-System übergeben werden, wenn libvirtd gestartet wird – Anführungszeichen werden hinzugefügt.
libvirt_host_uri
: Die Libvirt-Verbindungs-URI. Standardwert ist qemu+unix:///system?socket={{ libvirt_host_socket_dir }}/libvirt-sock
, wenn libvirt_host_var_prefix
gesetzt ist, andernfalls ""
. Wenn auf einen falschen Wert gesetzt, wird beim Aufruf von virsh oder einem der Virt_-Ansible-Module keine explizite Verbindungs-URI festgelegt.
libvirt_host_python3
: Ob die Python3-Version der Libvirt-Python-Bindings installiert werden soll. Wenn false
, werden die Python-2-Bindings installiert.
libvirt_host_install_daemon
: Ob der Libvirt-Daemon installiert und aktiviert werden soll. Der Standardwert ist true
.
libvirt_host_install_client
: Ob der Libvirt-Client installiert und aktiviert werden soll. Der Standardwert ist true
.
libvirt_host_extra_daemon_packages
: Liste von zusätzlichen Paketen, die auf Libvirt-Daemon-Hosts installiert werden sollen.
libvirt_host_extra_client_packages
: Liste von zusätzlichen Paketen, die auf Libvirt-Client-Hosts installiert werden sollen.
libvirt_host_libvirtd_conf_enabled
: Ob libvirtd.conf
konfiguriert werden soll. Standard ist true
.
libvirt_host_libvirtd_conf
: Konfiguration für libvirtd.conf
. Dict, das Optionen den Werten zuweist. Standard ist ein leeres Dict.
libvirt_host_qemu_conf_enabled
: Ob qemu.conf
konfiguriert werden soll. Der Standardwert ist true
.
libvirt_host_qemu_conf
: Konfiguration für qemu.conf
. Dict, das Optionen den Werten zuweist. Standard ist ein leeres Dict.
libvirt_host_enable_sasl_support
: Ob die SASL-Authentifizierungsunterstützung aktiviert werden soll. Standard ist false
.
libvirt_host_sasl_conf_enabled
: Ob die SASL-Authentifizierung konfiguriert werden soll (/etc/sasl2/libvirt.conf
). Standard ist dasselbe wie libvirt_host_enable_sasl_support
.
libvirt_host_sasl_conf
: Konfiguration für die SASL-Authentifizierung (/etc/sasl2/libvirt.conf
). String.
libvirt_host_sasl_mech_list
: Liste der aktivierten Libvirt-SASL-Authentifizierungsmechanismen. Standard ist ["SCRAM-SHA-256"]
, wenn libvirt_host_tls_listen
true
ist, andernfalls ["DIGEST-MD5"]
.
libvirt_host_sasl_credentials
: Liste von zu erstellenden SASL-Authentifizierungsanmeldeinformationen. Jedes Element ist ein Dictionary mit username
und password
. Der Standardwert ist eine Einzelobjektliste, die libvirt_host_sasl_authname
und libvirt_host_sasl_password
enthält.
libvirt_host_sasl_authname
: Benutzername für die SASL-Authentifizierung. Der Standardwert ist libvirt
.
libvirt_host_sasl_password
: Passwort für die SASL-Authentifizierung. Der Standardwert ist nicht gesetzt.
libvirt_host_sasl_auth_conf_enabled
: Ob die SASL-Authentifizierungsinformationen konfiguriert werden sollen (/etc/libvirt/auth.conf
). Der Standardwert ist dasselbe wie libvirt_host_enable_sasl_support
.
libvirt_host_sasl_auth_conf
: Konfiguration für die SASL-Authentifizierungsinformationen (/etc/libvirt/auth.conf
). String.
libvirt_host_sasl_auth_conf_filename
: Name der Datei, in die die SASL-Authentifizierungsinformationen geschrieben werden sollen. Der Standardwert ist "/etc/libvirt/auth.conf"
.
libvirt_host_sasl_auth_conf_owner
: Eigentümer der Datei, in die die SASL-Authentifizierungsinformationen geschrieben werden. Der Standardwert ist "root"
.
libvirt_host_sasl_auth_conf_group
: Gruppe der Datei, in die die SASL-Authentifizierungsinformationen geschrieben werden. Der Standardwert ist "root"
.
libvirt_host_sasl_auth_conf_mode
: Berechtigung der Datei, in die die SASL-Authentifizierungsinformationen geschrieben werden. Der Standardwert ist "0600"
.
libvirt_host_tcp_listen
: Ob die systemd-TCP-Socket-Einheit aktiviert werden soll. Der Standardwert ist false
.
libvirt_host_tcp_listen_address
: Systemd TCP-Socket ListenStream. Siehe man systemd.socket für das Format. Der Standardwert ist nicht gesetzt.
libvirt_host_tls_listen
: Ob die systemd-TLS-Socket-Einheit aktiviert werden soll. Der Standardwert ist false
.
libvirt_host_tls_listen_address
: Systemd TLS-Socket ListenStream. Siehe man systemd.socket für das Format. Der Standardwert ist nicht gesetzt.
libvirt_host_tls_server_cert
: TLS-Serverzertifikat. Der Standardwert ist nicht gesetzt.
libvirt_host_tls_server_key
: TLS-Serverkey. Der Standardwert ist nicht gesetzt.
libvirt_host_tls_client_cert
: TLS-Clientzertifikat. Der Standardwert ist nicht gesetzt.
libvirt_host_tls_client_key
: TLS-Clientkey. Der Standardwert ist nicht gesetzt.
libvirt_host_tls_cacert
: TLS-CA-Zertifikat. Der Standardwert ist nicht gesetzt.
libvirt_host_configure_apparmor
: Ob AppArmor für das Verzeichnis der Speicherpools konfiguriert werden soll.
Abhängigkeiten
Keine
Beispiel-Playbook
---
- name: Sicherstellen, dass Libvirt konfiguriert ist
hosts: all
roles:
- role: stackhpc.libvirt-host
libvirt_host_pools:
- name: mein-pool
type: dir
capacity: 1024
path: /path/to/pool
mode: 755
owner: mein-benutzer
group: meine-gruppe
- 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
Autoreninformation
- Mark Goddard (mark@stackhpc.com)
Role to install and configure a host as a Libvirt/KVM hypervisor
ansible-galaxy install stackhpc.libvirt-host