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,logicalundrbdunterstützt.lvm2wird als Alias fürlogicalunterstü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 Typlogicalist) oder RBD-Pool (wenn der Typrbdist).pvs: Eine Liste von physischen Volumes, die die Volume-Gruppe ausmachen. (nur wenn der Typlogicalist)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,openundnatwerden 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,openundnatModus.netmask: Subnetzmaske der virtuellen Bridge, erforderlich fürroute,openundnatModus.domain: DNS-Domainname fürroute,openundnatModus, standardmäßig der Netzwerkname (optional).dhcp_start: Erste IP des DHCP-Bereichs imroute,openodernatModus (optional).dhcp_end: Letzte IP des DHCP-Bereichs imroute,openodernatModus (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