ovirt.vm-infra
oVirt Virtuelle Maschinen Infrastruktur
Diese Rolle wurde in die oVirt Ansible Collection migriert. Bitte verwenden Sie die neueste Version dort. Dieses Repository ist jetzt nur noch lesbar und wird nicht mehr aktiv weiterentwickelt.
Die Rolle ovirt.vm-infra
verwaltet die virtuelle Maschinen Infrastruktur in oVirt. Diese Rolle erstellt auch ein Inventar der erstellten virtuellen Maschinen, wenn wait_for_ip
auf true
gesetzt ist und der Zustand der virtuellen Maschine running
ist. Alle definierten virtuellen Maschinen sind Teil der Inventargruppe ovirt_vm
. Zudem erstellt die Rolle Gruppen wie ovirt_tag_{tag_name}
, wenn Tags einer virtuellen Maschine zugewiesen sind, und platziert alle virtuellen Maschinen mit diesem Tag in dieser Inventargruppe.
Betrachten Sie die folgende Variablenstruktur:
vms:
- name: meinevm1
tag: mein_tag1
profile: mein_profil
- name: meinevm2
tag: mein_tag2
profile: mein_profil
Die Rolle erstellt die Inventargruppe ovirt_vm
mit beiden virtuellen Maschinen – meinevm1
und meinevm2
. Die Rolle erstellt auch die Inventargruppe ovirt_tag_mein_tag1
mit der virtuellen Maschine meinevm1
und die Inventargruppe ovirt_tag_mein_tag2
mit der virtuellen Maschine meinevm2
.
Hinweis
Bitte beachten Sie, dass Sie beim Installieren dieser Rolle von Ansible Galaxy angeweisen werden, den folgenden Befehl auszuführen:
$ ansible-galaxy install ovirt.vm-infra
Dies wird die Rolle in das Verzeichnis mit dem gleichen Namen herunterladen, wie Sie es auf der Befehlszeile angegeben haben, in diesem Fall ovirt.vm-infra
. Beachten Sie jedoch, dass die Groß- und Kleinschreibung beachtet wird; wenn Sie beispielsweise OVIRT.vm-infra
angeben, wird die gleiche Rolle heruntergeladen, aber sie wird in das Verzeichnis OVIRT.vm-infra
hinzugefügt. In diesem Fall müssen Sie diese Rolle in Zukunft mit dem Großbuchstaben-Präfix ansprechen. Seien Sie also vorsichtig, wie Sie den Namen der Rolle in der Befehlszeile angeben.
Was die RPM-Installation betrifft, unterstützen wir drei alte Namen – ovirt.vm-infra
, oVirt.vm-infra
und ovirt-vm-infra
. Sie können jeden dieser Namen verwenden. Diese Dokumentation und die Beispiele in diesem Repository verwenden den Namen ovirt.vm-infra
. Die Rollennamen oVirt.vm-infra
und ovirt-vm-infra
sind veraltet.
Anforderungen
- Ansible Version 2.9 oder höher
- Python SDK Version 4.3 oder höher
- python3-jmespath oder python2-jmespath
Einschränkungen
- Unterstützt keinen Ansible-Überprüfungsmodus (Trockenlauf).
Rollenvariablen
Name | Standardwert | |
---|---|---|
vms | UNDEF | Liste von Dictionaries mit Spezifikationen für virtuelle Maschinen. |
affinity_groups | UNDEF | Liste von Dictionaries mit Spezifikationen für Affinitätsgruppen. |
wait_for_ip | false | Wenn true, sollte das Playbook auf die von dem Gast-Agent gemeldete IP-Adresse der virtuellen Maschine warten. |
wait_for_ip_version | v4 | Geben Sie an, welche IP-Version erwartet werden soll. Entweder v4 oder v6. |
wait_for_ip_range | 0.0.0.0/0 | Geben Sie das CIDR der virtuellen Maschinen-IP an, die gemeldet werden soll. Funktioniert nur für IPv4. |
debug_vm_create | false | Wenn true, werden die Aufgaben der zu erstellenden virtuellen Maschine protokolliert. Das Protokoll kann Passwörter enthalten. |
vm_infra_create_single_timeout | 180 | Zeit in Sekunden, um auf die Erstellung und den Start der VM zu warten (wenn der Zustand running ist). |
vm_infra_create_poll_interval | 15 | Abfrageintervall. Zeit in Sekunden, um zwischen den Statusprüfungen der VM zu warten. |
vm_infra_create_all_timeout | vm_infra_create_single_timeout * (vms.length) | Gesamte Wartezeit für alle VMs, um erstellt / gestartet zu werden. |
vm_infra_wait_for_ip_retries | 5 | Anzahl der Versuche zur Überprüfung, ob die VM ihre IP-Adresse meldet. |
vm_infra_wait_for_ip_delay | 5 | Abfrageintervall der IP-Adresse. Zeit in Sekunden, um zwischen der Überprüfung, ob die VM ihre IP-Adresse meldet, zu warten. |
Die Variablen vms
und profile
können folgende Attribute enthalten. Beachten Sie, dass die Definition derselben Variablen in vms
Vorrang hat:
Name | Standardwert | |
---|---|---|
name | UNDEF | Name der zu erstellenden virtuellen Maschine. |
tag | UNDEF | Name des Tags, der der virtuellen Maschine zugewiesen werden soll. Nur Administratorbenutzer können dieses Attribut verwenden. |
cloud_init | UNDEF | Dictionary mit Werten für die Initialisierung von Unix-ähnlichen virtuellen Maschinen mit Cloud-Init. Siehe Abschnitt cloud_init für genauere Beschreibungen. |
cloud_init_nics | UNDEF | Liste von Dictionaries, die Netzwerkinterfaces darstellen, die durch Cloud-Init eingerichtet werden sollen. Siehe Abschnitt cloud_init_nics für genauere Beschreibungen. |
sysprep | UNDEF | Dictionary mit Werten für die Initialisierung von Windows virtuellen Maschinen mit Sysprep. Siehe Abschnitt sysprep für genauere Beschreibungen. |
profile | UNDEF | Dictionary, das die Hardware der virtuellen Maschine angibt. Siehe die Tabelle weiter unten. |
state | present | Soll die virtuelle Maschine gestoppt, vorhanden oder aktiv sein. Hat Vorrang vor dem Zustandswert im Profil. |
nics | UNDEF | Liste von Dictionaries, die die NICs der virtuellen Maschine spezifizieren. Siehe unten für genauere Beschreibungen. |
cluster | UNDEF | Name des Clusters, in dem die virtuelle Maschine erstellt wird. |
clone | No | Wenn yes, werden die Festplatten der erstellten virtuellen Maschine geklont und sind unabhängig von der Vorlage. Dieser Parameter wird nur verwendet, wenn der Zustand running oder present ist und die VM vorher nicht existierte. |
template | Blank | Name der Vorlage, auf der die virtuelle Maschine basieren soll. |
template_version | UNDEF | Versionsnummer der zu verwendenden Vorlage für die VM. Standardmäßig wird die neueste verfügbare Version der Vorlage verwendet. |
memory | UNDEF | Menge an Arbeitsspeicher für die virtuelle Maschine. |
memory_max | UNDEF | Obergrenze des Arbeitsspeichers der virtuellen Maschine, bis zu der der Speicher Hot-Plug durchgeführt werden kann. |
memory_guaranteed | UNDEF | Menge des minimal garantierten Speichers der virtuellen Maschine. Der Präfix verwendet den IEC 60027-2 Standard (zum Beispiel 1GiB, 1024MiB). memory_guaranteed darf nicht niedriger sein als der memory Parameter. |
cores | UNDEF | Anzahl der CPU-Kerne, die von der virtuellen Maschine verwendet werden. |
sockets | UNDEF | Anzahl der virtuellen CPU-Sockel der virtuellen Maschine. |
cpu_shares | UNDEF | Setzen Sie die CPU-Anteile für diese virtuelle Maschine. |
cpu_threads | UNDEF | Setzen Sie die CPU-Threads für diese virtuelle Maschine. |
disks | UNDEF | Liste von Dictionaries, die die zusätzlichen virtuellen Festplatten der Maschine spezifizieren. Siehe unten für genauere Beschreibungen. |
nics | UNDEF | Liste von Dictionaries, die die NICs der virtuellen Maschine spezifizieren. Siehe unten für genauere Beschreibungen. |
custom_properties | UNDEF | Eigenschaften, die an VDSM gesendet werden, um verschiedene Hooks zu konfigurieren. Benutzerspezifische Eigenschaften sind eine Liste von Dictionaries, die folgende Werte enthalten können: name - Name der benutzerdefinierten Eigenschaft. Zum Beispiel: hugepages, vhost, sap_agent usw. regexp - Regulärer Ausdruck, der für die benutzerdefinierte Eigenschaft festgelegt werden soll. value - Wert, der für die benutzerdefinierte Eigenschaft festgelegt werden soll. |
high_availability | UNDEF | Ob der Knoten hochverfügbar sein soll oder nicht. |
high_availability_priority | UNDEF | Gibt die Priorität der virtuellen Maschine in den Ausführungs- und Migrationswarteschlangen an. Virtuelle Maschinen mit höheren Prioritäten werden vor virtuellen Maschinen mit niedrigeren Prioritäten gestartet und migriert. Der Wert ist eine Ganzzahl zwischen 0 und 100. Je höher der Wert, desto höher die Priorität. Wenn kein Wert übergeben wird, wird der Standardwert von der oVirt/RHV-Engine festgelegt. |
io_threads | UNDEF | Anzahl der IO-Threads, die von der virtuellen Maschine verwendet werden. 0 bedeutet, dass IO-Threading deaktiviert ist. |
description | UNDEF | Beschreibung der virtuellen Maschine. |
operating_system | UNDEF | Betriebssystem der virtuellen Maschine. Zum Beispiel: rhel_7x64 |
type | UNDEF | Typ der virtuellen Maschine. Mögliche Werte: desktop, server oder high_performance |
graphical_console | UNDEF | Weisen Sie der virtuellen Maschine eine grafische Konsole zu. Die grafische Konsole ist ein Dictionary, das folgende Werte haben kann: headless_mode - Wenn true, deaktiviert die Grafikkonsole für diese virtuelle Maschine. protocol - 'VNC', 'Spice' oder beides. |
storage_domain | UNDEF | Name der Speicherdomäne, in der alle virtuellen Maschinenfestplatten erstellt werden sollen. Wird nur berücksichtigt, wenn eine Vorlage angegeben ist. |
state | present | Soll die virtuelle Maschine gestoppt, vorhanden oder aktiv sein. |
ssh_key | UNDEF | SSH-Schlüssel, der in die virtuelle Maschine hochgeladen werden soll. Dieser Parameter ist für die Abwärtskompatibilität vorgesehen und hat Vorrang vor authorized_ssh_keys im cloud_init Dictionary. |
domain | UNDEF | Die Domain der virtuellen Maschine. Dieser Parameter ist für die Abwärtskompatibilität vorgesehen und hat Vorrang vor host_name im cloud_init oder sysprep Dictionary. |
lease | UNDEF | Name der Speicherdomäne, auf der das Leasing der virtuellen Maschine liegt. |
root_password | UNDEF | Das Root-Passwort der virtuellen Maschine. Dieser Parameter ist für die Abwärtskompatibilität vorgesehen und hat Vorrang vor root_password im cloud_init oder sysprep Dictionary. |
host | UNDEF | Wenn Sie den cpu_mode auf host_passthrough setzen müssen, müssen Sie diesen Parameter verwenden, um den Host zu definieren, der zusammen mit der Platzierungspolitik auf "pinned" gesetzt werden muss. |
cpu_mode | UNDEF | CPU-Modus der virtuellen Maschine. Es kann einer der folgenden sein: host_passthrough, host_model oder custom. |
placement_policy | UNDEF | Die Konfiguration der Platzierungspolitik der virtuellen Maschine. |
boot_devices | UNDEF | Liste der Bootgeräte, die verwendet werden sollen, um zu booten. Gültige Einträge sind cdrom , hd , network . |
serial_console | UNDEF | Wahr aktiviert VirtIO-Serienkonsole, falsch deaktiviert sie. Wird standardmäßig von oVirt/RHV-Engine ausgewählt. |
serial_policy | UNDEF | Geben Sie eine Seriennummernrichtlinie für die virtuelle Maschine an. Folgende Optionen werden unterstützt. vm - Setzt die UUID der virtuellen Maschine als ihre Seriennummer. host - Setzt die UUID des Hosts als die Seriennummer der virtuellen Maschine. custom - Erlaubt es Ihnen, eine benutzerdefinierte Seriennummer im Parameter serial_policy_value anzugeben. |
serial_policy_value | UNDEF | Erlaubt es Ihnen, eine benutzerdefinierte Seriennummer anzugeben. Dieser Parameter wird nur verwendet, wenn serial_policy als benutzerdefiniert festgelegt ist. |
comment | UNDEF | Kommentar zur virtuellen Maschine. |
Der Eintrag in der Liste disks
des profile
Dictionaries kann folgende Attribute enthalten:
Name | Standardwert | |
---|---|---|
size | UNDEF | Die Größe der zusätzlichen Festplatte. |
name | UNDEF | Der Name der zusätzlichen Festplatte. |
id | UNDEF | ID der Festplatte. Wenn Sie die ID der Festplatte angeben und den Namen, wird die Festplatte nach ID gesucht und der Name aktualisiert, wenn er von dem Namen abweicht, der im Namensparameter angegeben ist. |
storage_domain | UNDEF | Der Name der Speicherdomäne, in der die Festplatte erstellt werden soll. |
interface | UNDEF | Die Schnittstelle der Festplatte. |
name_prefix | True | Wenn true, wird der Name der VM als Präfix für den Festplattentitel verwendet. Wenn false, wird nur der Name der Festplatte verwendet – könnte nützlich sein, wenn die VM aus einer Vorlage mit benutzerdefinierter Festplattengröße erstellt wird. |
format | UNDEF | Geben Sie das Format der Festplatte an.
|
bootable | UNDEF | Wahr, wenn die Festplatte bootfähig sein soll. |
activate | UNDEF | Wahr, wenn die Festplatte aktiviert werden soll. |
Der Eintrag in der Liste nics
des profile
Dictionaries kann folgende Attribute enthalten:
Name | Standardwert | |
---|---|---|
name | UNDEF | Der Name des Netzwerkinterface. |
interface | UNDEF | Typ des Netzwerkinterfaces. |
mac_address | UNDEF | Benutzerdefinierte MAC-Adresse des Netzwerkinterfaces, standardmäßig wird sie aus dem MAC-Pool abgerufen. |
network | UNDEF | Logisches Netzwerk, das das VM-Netzwerkinterface verwenden soll. Wenn kein Netzwerk angegeben ist, wird leeres Netzwerk verwendet. |
profile | UNDEF | Virtuelles Netzwerkinferface-Profil, das an das Netzwerkinterface der VM angehängt werden soll. |
Die Liste affinity_groups
kann folgende Attribute enthalten:
Name | Standardwert | |
---|---|---|
cluster | UNDEF (erforderlich) | Name des Clusters der Affinitätsgruppe. |
description | UNDEF | Leserfreundliche Beschreibung. |
host_enforcing | false |
|
host_rule | UNDEF |
|
hosts | UNDEF | Liste von Hostnamen, die dieser Gruppe zugewiesen sind. |
name | UNDEF (erforderlich) | Name der Affinitätsgruppe. |
state | UNDEF | Ob die Gruppe vorhanden oder abwesend sein soll. |
vm_enforcing | false |
|
vm_rule | UNDEF |
|
vms | UNDEF | Liste der VMs, die dieser Affinitätsgruppe zugewiesen werden sollen. |
wait | true | Wenn true, wartet das Modul auf den gewünschten Zustand. |
Die Liste affinity_labels
kann folgende Attribute enthalten:
Name | Standardwert | |
---|---|---|
cluster | UNDEF (erforderlich) | Name des Clusters der Affinitätsgruppen. |
hosts | UNDEF | Liste von Hostnamen, die diesem Label zugewiesen sind. |
name | UNDEF (erforderlich) | Name des Affinitätslabels. |
state | UNDEF | Ob das Label vorhanden oder abwesend sein soll. |
vms | UNDEF | Liste der VMs, die diesem Affinitätslabel zugewiesen sind. |
Das cloud_init
Dictionary kann folgende Attribute enthalten:
Name | Beschreibung |
---|---|
host_name | Hostname, der der virtuellen Maschine beim Einsatz zugewiesen wird. |
timezone | Zeitzone, die der virtuellen Maschine beim Einsatz zugewiesen wird. |
user_name | Benutzername, der verwendet wird, um das Passwort der virtuellen Maschine beim Einsatz zu setzen. |
root_password | Passwort, das für den Benutzer gesetzt wird, der durch den Parameter user_name angegeben ist. Standardmäßig wird es für den Root-Benutzer festgelegt. |
authorized_ssh_keys | Verwenden Sie diese SSH-Schlüssel, um sich bei der virtuellen Maschine anzumelden. |
regenerate_ssh_keys | Wenn wahr, werden SSH-Schlüssel auf der virtuellen Maschine neu generiert. |
custom_script | Cloud-init-Skript, das bei der Bereitstellung auf der virtuellen Maschine ausgeführt wird. Dies wird an das Ende des von anderen Optionen generierten Cloud-Init-Skripts angehängt. |
dns_servers | DNS-Server, die auf der virtuellen Maschine konfiguriert werden sollen. |
dns_search | DNS-Suchdomains, die auf der virtuellen Maschine konfiguriert werden sollen. |
nic_boot_protocol | Setzen Sie das Bootprotokoll des Netzwerkinterfaces der virtuellen Maschine. Kann einer von keiner, dhcp oder statisch sein. |
nic_ip_address | Wenn das Bootprotokoll statisch ist, setzen Sie diese IP-Adresse auf das Netzwerkinterface der virtuellen Maschine. |
nic_netmask | Wenn das Bootprotokoll statisch ist, setzen Sie diese Netzmaske auf das Netzwerkinterface der virtuellen Maschine. |
nic_gateway | Wenn das Bootprotokoll statisch ist, setzen Sie dieses Gateway auf das Netzwerkinterface der virtuellen Maschine. |
nic_name | Setzen Sie den Namen auf das Netzwerkinterface der virtuellen Maschine. |
nic_on_boot | Wenn wahr, wird das Netzwerkinterface beim Booten gestartet. |
Das sysprep
Dictionary kann folgende Attribute enthalten:
Name | Beschreibung |
---|---|
host_name | Hostname, der der virtuellen Maschine beim Einsatz zugewiesen wird. |
active_directory_ou | Active Directory Organisationseinheit, die für die Anmeldung des Benutzers verwendet wird. |
org_name | Organisationsname, der der Windows virtuellen Maschine zugewiesen wird. |
user_name | Benutzername, der verwendet wird, um das Passwort der Windows virtuellen Maschine zu setzen. |
root_password | Passwort, das für den Benutzer gesetzt wird, der durch den Benutzername-Parameter angegeben wird. Standardmäßig wird es für den Root-Benutzer festgelegt. |
windows_license_key | Lizenzschlüssel, der der Windows virtuellen Maschine zugewiesen wird. |
input_locale | Eingabe-Lokalisierung der Windows virtuellen Maschine. |
system_locale | Systemlokalisierung der Windows virtuellen Maschine. |
ui_language | UI-Sprache der Windows virtuellen Maschine. |
domain | Domain, die der Windows virtuellen Maschine zugewiesen wird. |
timezone | Zeitzone, die der Windows virtuellen Maschine zugewiesen wird. |
Die cloud_init_nics
Liste von Dictionaries repräsentiert Netzwerkinterfaces, die durch Cloud-Init eingerichtet werden sollen. Diese Option wird verwendet, wenn der Benutzer mehrere Netzwerkinterfaces über Cloud-Init einrichten möchte. Wenn ein Netzwerkinterface ausreicht, sollte der Benutzer die cloud_init nic_* Parameter verwenden. Die cloud_init nic_* Parameter werden mit den cloud_init_nics Parametern zusammengeführt. Das Dictionary kann folgende Werte enthalten.
Name | Beschreibung |
---|---|
nic_boot_protocol | Setzen Sie das Bootprotokoll des Netzwerkinterfaces der virtuellen Maschine. Kann einer von keiner, dhcp oder statisch sein. |
nic_ip_address | Wenn das Bootprotokoll statisch ist, setzen Sie diese IP-Adresse auf das Netzwerkinterface der virtuellen Maschine. |
nic_netmask | Wenn das Bootprotokoll statisch ist, setzen Sie diese Netzmaske auf das Netzwerkinterface der virtuellen Maschine. |
nic_gateway | Wenn das Bootprotokoll statisch ist, setzen Sie dieses Gateway auf das Netzwerkinterface der virtuellen Maschine. |
nic_name | Setzen Sie den Namen auf das Netzwerkinterface der virtuellen Maschine. |
nic_on_boot | Wenn wahr, wird das Netzwerkinterface beim Booten gestartet. |
Abhängigkeiten
Keine.
Beispiel-Playbook
---
- name: oVirt Infrastruktur
hosts: localhost
connection: local
gather_facts: false
vars_files:
# Enthält die verschlüsselte Variable `engine_password`, die mit ansible-vault gespeichert ist
- passwords.yml
vars:
engine_fqdn: ovirt-engine.example.com
engine_user: admin@internal
engine_cafile: /etc/pki/ovirt-engine/ca.pem
httpd_vm:
cluster: produktion
domain: example.com
template: rhel7
memory: 2GiB
cores: 2
ssh_key: ssh-rsa AAA...LGx benutzer@fqdn
disks:
- size: 10GiB
name: data
storage_domain: mynfsstorage
interface: virtio
db_vm:
cluster: produktion
domain: example.com
template: rhel7
memory: 4GiB
cores: 1
ssh_key: ssh-rsa AAA...LGx benutzer@fqdn
disks:
- size: 50GiB
name: data
storage_domain: mynfsstorage
interface: virtio
nics:
- name: ovirtmgmt
network: ovirtmgmt
profile: ovirtmgmt
vms:
- name: postgresql-vm-0
tag: postgresql_vm
profile: "{{ db_vm }}"
- name: postgresql-vm-1
tag: postgresql_vm
profile: "{{ db_vm }}"
- name: apache-vm
tag: httpd_vm
profile: "{{ httpd_vm }}"
affinity_groups:
- name: db-ag
cluster: produktion
vm_enforcing: true
vm_rule: negativ
vms:
- postgresql-vm-0
- postgresql-vm-1
roles:
- ovirt.vm-infra
Im folgenden Beispiel sehen Sie, wie das von der Rolle ovirt.vm-infra
erstellte Inventar in einem nachfolgenden Play verwendet wird.
---
- name: Apache VM bereitstellen
hosts: localhost
connection: local
gather_facts: false
vars_files:
# Enthält die verschlüsselte Variable `engine_password`, die mit ansible-vault gespeichert ist
- passwords.yml
vars:
wait_for_ip: true
httpd_vm:
cluster: produktion
state: running
domain: example.com
template: rhel7
memory: 2GiB
cores: 2
ssh_key: ssh-rsa AAA...LGx benutzer@fqdn
disks:
- size: 10GiB
name: data
storage_domain: mynfsstorage
interface: virtio
vms:
- name: apache-vm
tag: apache
profile: "{{ httpd_vm }}"
roles:
- ovirt.vm-infra
- name: Apache auf VM bereitstellen
hosts: ovirt_tag_apache
vars_files:
- apache_vars.yml
roles:
- geerlingguy.apache
Lizenz
Apache Lizenz 2.0
Role to manage virtual machine infrastructure in oVirt.
ansible-galaxy install ovirt.vm-infra