ovirt.infra
oVirt Infrastruktur
Diese Rolle wurde in die oVirt Ansible Collection migriert. Bitte verwenden Sie die neueste Version von dort. Dieses Repository ist jetzt schreibgeschützt und wird nicht mehr aktiv entwickelt.
Die Rolle ovirt.infra
ermöglicht Ihnen die Einrichtung von oVirt-Infrastruktur, einschließlich: MAC-Pools, Rechenzentren, Cluster, Netzwerke, Hosts, Benutzer und Gruppen.
Zielmaschine
Wenn Sie diese Rolle zur Benutzerverwaltung verwenden, wird das ovirt-aaa-jdbc-tool
verwendet, welches sich auf der Engine-Maschine befindet. Sie müssen die Rolle also auf der Engine-Maschine ausführen.
Hinweis
Bitte beachten Sie, dass Sie beim Installieren dieser Rolle aus Ansible Galaxy aufgefordert werden, den folgenden Befehl auszuführen:
$ ansible-galaxy install ovirt.infra
Dies wird die Rolle in das Verzeichnis mit dem gleichen Namen herunterladen, das Sie in der Kommandozeile angegeben haben, in diesem Fall ovirt.infra
. Beachten Sie jedoch, dass die Groß- und Kleinschreibung beachtet wird. Wenn Sie beispielsweise OVIRT.infra
angeben, wird die gleiche Rolle heruntergeladen, aber sie wird in das Verzeichnis namens OVIRT.infra
hinzugefügt. Daher müssen Sie diese Rolle später immer mit dem Großbuchstabenpräfix verwenden. Seien Sie also vorsichtig, wie Sie den Namen der Rolle in der Kommandozeile angeben.
Für die RPM-Installation installieren wir drei veraltete Namen ovirt.infra
, oVirt.infra
und ovirt-infra
. Sie können einen dieser Namen verwenden. Diese Dokumentation und die Beispiele in diesem Repository verwenden den Namen ovirt.infra
. Die Rollennamen oVirt.infra
und ovirt-infra
sind veraltet.
Anforderungen
- oVirt Python SDK Version 4.3
- Ansible Version 2.9
Rollenvariablen
Rechenzentrum
Um ein Rechenzentrum einzurichten oder zu bereinigen, können Sie folgende Variablen verwenden:
Name | Standardwert | Beschreibung |
---|---|---|
data_center_name | UNDEF | Name des Rechenzentrums. |
data_center_description | UNDEF | Beschreibung des Rechenzentrums. |
data_center_local | false | Festlegen, ob das Rechenzentrum geteilt oder lokal ist. |
compatibility_version | UNDEF | Kompatibilitätsversion des Rechenzentrums. |
data_center_state | present | Festlegen, ob das Rechenzentrum vorhanden oder abwesend sein soll. |
recursive_cleanup | false | Festlegen, ob alle Entitäten im Rechenzentrum rekursiv entfernt werden sollen. Gültig nur, wenn state == absent. |
format_storages | false | Festlegen, ob ALLE Speichermedien, die als Teil des Rechenzentrums entfernt werden, formatiert werden sollen. Gültig nur, wenn data_center_state == absent und recursive_cleanup == true. |
MAC-Pools
Um MAC-Pools einzurichten, können Sie eine Listenvariable mit dem Namen mac_pools
definieren. Die Elemente in der Liste mac_pools
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
mac_pool_name | UNDEF | Name des MAC-Pools, der verwaltet werden soll. |
mac_pool_ranges | UNDEF | Liste der MAC-Bereiche. Die from- und to-Werte sollten durch ein Komma getrennt werden. Beispiel: 00:1a:4a:16:01:51,00:1a:4a:16:01:61 |
mac_pool_allow_duplicates | UNDEF | Wenn (true) eine MAC-Adresse mehrere Male im Pool verwendet werden darf. Der Standardwert ist false, wie von der oVirt-Engine festgelegt. |
Cluster
Um Cluster einzurichten, können Sie eine Listenvariable mit dem Namen clusters
definieren. Die Elemente in der Liste clusters
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
name | UNDEF (Erforderlich) | Name des Clusters. |
state | present | Zustand des Clusters. |
cpu_type | Intel Conroe Family | CPU-Typ des Clusters. |
profile | UNDEF | Das Cluster-Profil. Sie können ein vordefiniertes Cluster-Profil auswählen, siehe die Tabellen weiter unten. |
ballooning | UNDEF | Wenn True, aktivieren Sie die Speicher-Ballon-Optimierung. Speicherballon wird verwendet, um den Host-Speicher dynamisch basierend auf den VM-Anforderungen neu zu verteilen / einzufordern. |
description | UNDEF | Beschreibung des Clusters. |
ksm | UNDEF | Wenn True, aktivieren Sie KSM (Kernel Same-page Merging), wenn dies erforderlich ist und wenn es einen Speicherspar-Vorteil bringt, der die CPU-Kosten überwiegt. |
ksm_numa | UNDEF | Wenn True, aktiviert KSM für die beste Leistung innerhalb von NUMA-Knoten. |
vm_reason | UNDEF | Wenn True, aktivieren Sie ein optionales Grundfeld, wenn eine virtuelle Maschine vom Manager heruntergefahren wird, damit der Administrator eine Erklärung für die Wartung geben kann. |
host_reason | UNDEF | Wenn True, aktivieren Sie ein optionales Grundfeld, wenn ein Host in den Wartungsmodus versetzt wird, sodass der Administrator eine Erklärung für die Wartung abgeben kann. |
memory_policy alias: performance_preset |
UNDEF |
|
migration_policy | UNDEF | Eine Migrationsrichtlinie definiert die Bedingungen für das Live-Migrieren virtueller Maschinen im Falle eines Host-Ausfalls. Folgende Richtlinien werden unterstützt:
|
scheduling_policy | UNDEF | Die vom Cluster verwendete Planungsrichtlinie. |
ha_reservation | UNDEF | Wenn True, überwacht oVirt/RHV die Clusterkapazität für hochverfügbare virtuelle Maschinen. |
fence_enabled | UNDEF | Wenn True, wird das Fencing im Cluster aktiviert. |
fence_connectivity_threshold | UNDEF | Der Schwellenwert, der von fence_skip_if_connectivity_broken verwendet wird. |
fence_skip_if_connectivity_broken | UNDEF | Wenn True, wird das Fencing vorübergehend deaktiviert, wenn der Prozentsatz der Hosts im Cluster, die Verbindungsprobleme haben, größer oder gleich dem definierten Schwellenwert ist. |
fence_skip_if_sd_active | UNDEF | Wenn True, werden alle Hosts im Cluster, die nicht reagieren und weiterhin mit dem Speicher verbunden sind, nicht eingezäunt. |
mac_pool | UNDEF | MAC-Pool-Name. |
comment | UNDEF | Kommentar zum Cluster. |
migration_bandwidth | UNDEF | Die Bandbreiteneinstellungen definieren die maximale Bandbreite für sowohl ausgehende als auch eingehende Migrationen pro Host. Folgende Bandbreitenoptionen werden unterstützt:
|
migration_bandwidth_limit | UNDEF | Setzt das benutzerdefinierte Migrationsbandbreitenlimit. |
network | UNDEF | Management-Netzwerk des Clusters, um auf die Cluster-Hosts zuzugreifen. |
resilience_policy | UNDEF | Die Resilienz-Policy definiert, wie die virtuellen Maschinen beim Migrieren priorisiert werden. Folgende Werte werden unterstützt:
|
rng_sources | UNDEF | Liste, die die Zufallszahlengeneratorgeräte angibt, die alle Hosts im Cluster verwenden werden. Unterstützte Generatoren sind: hwrng und random. |
serial_policy | UNDEF | Legt eine Seriennummern-Richtlinie für die virtuellen Maschinen im Cluster fest. Folgende Optionen werden unterstützt:
|
serial_policy_value | UNDEF | Ermöglicht es Ihnen, eine benutzerdefinierte Seriennummer anzugeben. Dieses Parameter wird nur verwendet, wenn serial_policy benutzerdefiniert ist. |
spice_proxy | UNDEF | Der Proxy über den der SPICE-Client eine Verbindung zu virtuellen Maschinen herstellen wird. Die Adresse muss im folgenden Format vorliegen: protocol://[host]:[port] |
switch_type | UNDEF | Typ des Switches, der von allen Netzwerken im angegebenen Cluster verwendet wird. Entweder legacy, das einen Linux-Bridge verwendet, oder ovs unter Verwendung von Open vSwitch. |
threads_as_cores | UNDEF | Wenn True, werden die exponierten Host-Threads als Kerne behandelt, die von virtuellen Maschinen genutzt werden können. |
trusted_service | UNDEF | Wenn True, wird die Integration mit einem OpenAttestation-Server aktiviert. |
virt | UNDEF | Wenn True, werden Hosts in diesem Cluster verwendet, um virtuelle Maschinen auszuführen. Standard ist wahr. |
gluster | UNDEF | Wenn True, werden Hosts in diesem Cluster als Gluster Storage-Server-Knoten verwendet und nicht für die Ausführung von virtuellen Maschinen. |
external_network_providers | UNDEF | Liste, die die externen Netzwerkprovider angibt, die im Cluster verfügbar sind. |
Weitere Informationen zu den Parametern finden Sie in der ovirt_cluster Modul-Dokumentation.
Cluster-Profil
Mögliche profile
-Optionen des Clusters sind development
und production
, ihre Standardwerte sind unten beschrieben:
Entwicklung
Das development
-Profil des Clusters hat vordefinierte folgende Werte:
Parameter | Wert |
---|---|
ballooning | true |
ksm | true |
host_reason | false |
vm_reason | false |
memory_policy | server |
migration_policy | post_copy |
Produktion
Das production
-Profil des Clusters hat vordefinierte folgende Werte:
Parameter | Wert |
---|---|
ballooning | false |
ksm | false |
host_reason | true |
vm_reason | true |
memory_policy | disabled |
migration_policy | suspend_workload |
scheduling_policy | evenly_distributed |
ha_reservation | true |
fence_enabled | true |
fence_skip_if_connectivity_broken | true |
fence_skip_if_sd_active | true |
Hosts
Um Hosts einzurichten, können Sie eine Listenvariable mit dem Namen hosts
definieren. Die Elemente in der Liste hosts
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
name | UNDEF (Erforderlich) | Name des Hosts. |
state | present | Gibt an, ob der Host present oder absent ist. |
address | UNDEF | IP-Adresse oder FQDN des Hosts. |
password | UNDEF | Das Root-Passwort des Hosts. Erforderlich, wenn public_key false ist. |
public_key | UNDEF | Wenn true, soll der öffentliche Schlüssel zur Authentifizierung verwendet werden. |
cluster | UNDEF (Erforderlich) | Der Cluster, mit dem sich der Host verbinden muss. |
timeout | 1800 | Maximale Wartezeit, damit der Host im Zustand UP ist. |
poll_interval | 20 | Abfrageintervall zur Überprüfung des Host-Status. |
hosted_engine | UNDEF | Gibt an, ob der Host als gehostete Engine 'deploy' ist. |
power_management | UNDEF | Die Stromverwaltung. Sie können vordefinierte Variablen auswählen, siehe die Tabellen weiter unten. |
Falls Sie die Variable hosts
aus irgendeinem Grund nicht in Ihrem Playbook verwenden können, können Sie den Namen dieser Variable ändern, indem Sie den Wert der Variable hosts_var_name
überschreiben. Beispiel:
- name: oVirt Infrastruktur einrichten
hosts: engine
roles:
- role: ovirt.infra
vars:
hosts_var_name: ovirt_hosts
ovirt_hosts:
- name: host_0
state: present
address: 1.2.3.4
password: 123456
cluster: Default
Stromverwaltungsoptionen für den Host
Die Optionen für die Stromverwaltung haben folgende vordefinierte Werte:
Name | Standardwert | Beschreibung |
---|---|---|
address | UNDEF | Adresse der Schnittstelle für die Stromverwaltung. |
state | present | Ob das Strommanagement des Hosts vorhanden/nicht vorhanden sein soll. |
username | UNDEF | Benutzername, um sich mit der Schnittstelle für das Strommanagement zu verbinden. |
password | UNDEF | Passwort des Benutzers, der im Parameter C(username) angegeben ist. |
type | UNDEF | Typ der Stromverwaltung. Vordefinierte oVirt/RHV-Werte sind drac5, ipmilan, rsa, bladecenter, alom, apc, apc_snmp, eps, wti, rsb, cisco_ucs, drac7, hpblade, ilo, ilo2, ilo3, ilo4, ilo_ssh, aber der Benutzer kann einen benutzerdefinierten Typ definiert haben. |
options | UNDEF | Wörterbuch mit zusätzlichen Optionen für das Fencing (einschließlich des Stromverwaltungssteckplatzes). Weitere Informationen zu den Optionen finden Sie unter https://github.com/ClusterLabs/fence-agents/blob/master/doc/FenceAgentAPI.md. |
port | UNDEF | Port der Schnittstelle zur Stromverwaltung. |
Netzwerke
Logische Netzwerke
Um logische Netzwerke einzurichten, können Sie eine Listenvariable mit dem Namen logical_networks
definieren. Die Liste logical_networks
kann folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
name | UNDEF | Name des Netzwerks. |
state | present | Gibt an, ob der Netzwerkstatus present oder absent ist. |
vlan_tag | UNDEF | Festlegen des VLAN-Tags. |
vm_network | True | Wenn True, wird das Netzwerk als VM-Netzwerk gekennzeichnet. |
mtu | UNDEF | Maximale Übertragungseinheit (MTU) des Netzwerks. |
description | UNDEF | Beschreibung des Netzwerks. |
clusters | UNDEF | Liste von Wörterbüchern, die beschreiben, wie das Netzwerk in einem spezifischen Cluster verwaltet wird. |
label | UNDEF | Name des Etiketts, das dem Netzwerk zugewiesen werden soll. |
Weitere Informationen zu den Parametern finden Sie in der ovirt_network Modul-Dokumentation.
Host-Netzwerke
Um Host-Netzwerke einzurichten, können Sie eine Listenvariable mit dem Namen host_networks
definieren. Die Liste host_networks
kann folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
name | UNDEF | Name des Hosts. |
state | UNDEF | Gibt an, ob der Netzwerkstatus present oder absent ist. |
check | UNDEF | Wenn true, überprüft die Verbindung zwischen dem Host und der Engine. |
save | UNDEF | Wenn true, wird die Netzwerkkonfiguration persistent, standardmäßig ist sie temporär. |
bond | UNDEF | Wörterbuch, das das Netzwerk-Bond beschreibt. |
networks | UNDEF | Wörterbuch, das die Netzwerke beschreibt, die an die Schnittstelle oder das Bond angeschlossen werden sollen. |
labels | UNDEF | Liste von Namen des Netzwerketiketts, das dem Bond oder der Schnittstelle zugewiesen werden soll. |
interface | UNDEF | Name der Netzwerkschnittstelle, an die das logische Netzwerk angeschlossen werden sollte. |
Weitere Informationen zu den Parametern finden Sie in der ovirt_host_network Modul-Dokumentation.
Speicher
Um Speicher einzurichten, können Sie eine Wörterbuchvariable mit dem Namen storages
definieren. Der Wert des Elements im storages
-Wörterbuch kann folgende Parameter enthalten (der Schlüssel ist immer der Name des Speichers):
Name | Standardwert | Beschreibung |
---|---|---|
master | false | Wenn true, wird der Speicher als erster Speicher hinzugefügt, was bedeutet, dass er der Master-Speicher ist. |
domain_function | data | Die Funktion der Speicherdomain. Mögliche Werte sind:
|
localfs | UNDEF | Wörterbuch, das den lokalen Speicher beschreibt. |
nfs | UNDEF | Wörterbuch, das den NFS-Speicher beschreibt. |
iscsi | UNDEF | Wörterbuch, das den iSCSI-Speicher beschreibt. |
posixfs | UNDEF | Wörterbuch, das den PosixFS-Speicher beschreibt. |
fcp | UNDEF | Wörterbuch, das den FCP-Speicher beschreibt. |
glusterfs | UNDEF | Wörterbuch, das glusterFS-Speicher beschreibt. |
discard_after_delete | UNDEF | Wenn True, werden die Speicherbereich-Blöcke beim Löschen verworfen. Standardmäßig aktiviert. Dieses Parameter ist nur relevant für blockbasierte Speicherdomänen. |
Weitere Informationen zu den Parametern finden Sie in der ovirt_storage_domain Modul-Dokumentation.
AAA JDBC
Benutzer
Um Benutzer im AAA JDBC-Anbieter einzurichten, können Sie eine Wörterbuchvariable mit dem Namen users
definieren. Die Elemente in der Liste users
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
state | present | Gibt an, ob der Benutzer present oder absent ist. |
name | UNDEF | Name des Benutzers. |
authz_name | UNDEF | Autorisierungsanbieter des Benutzers. |
password | UNDEF | Passwort des Benutzers. |
valid_to | UNDEF | Gibt das Datum an, bis zu dem das Konto gültig bleibt. |
attributes | UNDEF | Ein Wörterbuch von Attributen, die mit dem Benutzer verbunden sind. Verfügbare Attribute:
|
Benutzergruppen
Um Benutzergruppen im AAA JDBC-Anbieter einzurichten, können Sie eine Wörterbuchvariable mit dem Namen user_groups
definieren. Die Elemente in der Liste user_groups
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
state | present | Gibt an, ob die Gruppe present oder absent ist. |
name | UNDEF | Name der Gruppe. |
authz_name | UNDEF | Autorisierungsanbieter der Gruppe. |
users | UNDEF | Liste von Benutzern, die zu dieser Gruppe gehören. |
Berechtigungen
Um die Berechtigungen von Benutzern oder Gruppen einzurichten, können Sie eine Wörterbuchvariable mit dem Namen permissions
definieren. Die Elemente in der Liste permissions
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
state | present | Gibt an, ob der Zustand der Berechtigung present oder absent ist. |
user_name | UNDEF | Der Benutzer, für den die Berechtigung verwaltet werden soll. |
group_name | UNDEF | Name der Gruppe, für die die Berechtigung verwaltet werden soll. |
authz_name | UNDEF | Name des Autorisierungsanbieters der Gruppe oder des Benutzers. |
role | UNDEF | Die Rolle, die dem Benutzer oder der Gruppe zugewiesen werden soll. |
object_type | UNDEF | Der Objekttyp, der zur Zuweisung der Berechtigung verwendet werden soll. Mögliche Objekttypen sind:
|
object_name | UNDEF | Name des Objekts, dem die Berechtigung zugewiesen werden soll. |
Externe Anbieter
Um externe Anbieter einzurichten, können Sie eine Wörterbuchvariable mit dem Namen external_providers
definieren. Die Elemente in der Liste external_providers
können folgende Parameter enthalten:
Name | Standardwert | Beschreibung |
---|---|---|
name | UNDEF (Erforderlich) | Name des externen Anbieters. |
state | present | Zustand des externen Anbieters. Werte können sein:
|
type | UNDEF (Erforderlich) | Typ des externen Anbieters. Werte können sein:
|
url | UNDEF | URL, unter der der externe Anbieter gehostet wird. Erforderlich, wenn der Zustand vorhanden ist. |
username | UNDEF | Benutzername für die Anmeldung beim externen Anbieter. Gilt für alle Typen. |
password | UNDEF | Passwort des Benutzers, der im Benutzernamen-Parameter angegeben ist. Gilt für alle Typen. |
tenant | UNDEF | Name des Mandanten. |
auth_url | UNDEF | Keystone-Authentifizierungs-URL des OpenStack-Anbieters. Erforderlich für:
|
data_center | UNDEF | Name des Rechenzentrums, in dem der Anbieter angeschlossen werden soll. Gilt für den Typ os_volume. |
authentication_keys | UNDEF | Liste der Authentifizierungsschlüssel. Jeder Schlüssel wird durch ein Wörterbuch wie {'uuid': 'my-uuid', 'value': 'secret value'} dargestellt. Hinzugefügt in Ansible 2.6. Gilt für den Typ os_volume. |
Weitere Informationen zu den Parametern finden Sie in der ovirt_external_provider Modul-Dokumentation.
Beispiel-Playbook
---
- name: oVirt Infrastruktur
hosts: localhost
connection: local
gather_facts: false
vars:
engine_fqdn: ovirt-engine.example.com
engine_user: admin@internal
engine_password: 123456
engine_cafile: /etc/pki/ovirt-engine/ca.pem
data_center_name: mydatacenter
compatibility_version: 4.1
mac_pools:
- mac_pool_name: "Default"
mac_pool_ranges:
- "00:1a:4a:16:01:51,00:1a:4a:16:01:61"
clusters:
- name: production
cpu_type: Intel Conroe Family
profile: production
hosts:
- name: myhost
address: 1.2.3.4
cluster: production
password: 123456
- name: myhost1
address: 5.6.7.8
cluster: production
password: 123456
power_management:
address: 9.8.7.6
username: root
password: password
type: ipmilan
options:
myoption1: x
myoption2: y
slot: myslot
storages:
mynfsstorage:
master: true
state: present
nfs:
address: 10.11.12.13
path: /the_path
myiscsistorage:
state: present
iscsi:
target: iqn.2014-07.org.ovirt:storage
port: 3260
address: 100.101.102.103
username: username
password: password
lun_id: 3600140551fcc8348ea74a99b6760fbb4
mytemplates:
domain_function: export
nfs:
address: 100.101.102.104
path: /exports/nfs/exported
myisostorage:
domain_function: iso
nfs:
address: 100.101.102.105
path: /exports/nfs/iso
logical_networks:
- name: mynetwork
clusters:
- name: production
assigned: yes
required: no
display: no
migration: yes
gluster: no
host_networks:
- name: myhost1
check: true
save: true
bond:
name: bond0
mode: 2
interfaces:
- eth2
- eth3
networks:
- name: mynetwork
boot_protocol: dhcp
users:
- name: john.doe
authz_name: internal-authz
password: 123456
valid_to: "2018-01-01 00:00:00Z"
- name: joe.doe
authz_name: internal-authz
password: 123456
valid_to: "2018-01-01 00:00:00Z"
user_groups:
- name: admins
authz_name: internal-authz
users:
- john.doe
- joe.doe
permissions:
- state: present
user_name: john.doe
authz_name: internal-authz
role: UserROle
object_type: cluster
object_name: production
- state: present
group_name: admins
authz_name: internal-authz
role: UserVmManager
object_type: cluster
object_name: production
external_providers:
- name: myglance
type: os_image
state: present
url: http://externalprovider.example.com:9292
username: admin
password: secret
tenant: admin
auth_url: http://externalprovider.example.com:35357/v2.0/
pre_tasks:
- name: Anmelden bei oVirt
ovirt_auth:
hostname: "{{ engine_fqdn }}"
username: "{{ engine_user }}"
password: "{{ engine_password }}"
ca_file: "{{ engine_cafile | default(omit) }}"
insecure: "{{ engine_insecure | default(true) }}"
tags:
- always
roles:
- ovirt.infra
post_tasks:
- name: Abmelden von oVirt
ovirt_auth:
state: absent
ovirt_auth: "{{ ovirt_auth }}"
tags:
- always
Lizenz
Apache License 2.0
ansible-galaxy install ovirt.infra