ovirt.infra
oVirt Infra
Ta rola została przeniesiona do oVirt Ansible Collection, proszę używać najnowszej wersji stamtąd. To repozytorium jest teraz tylko do odczytu i nie jest już używane do aktywnego rozwoju.
Rola ovirt.infra
umożliwia skonfigurowanie infrastruktury oVirt, w tym: pul mak, centrów danych, klastrów, sieci, hostów, użytkowników i grup.
Maszyna docelowa
Jeśli używasz tej roli do zarządzania użytkownikami, będzie ona korzystać z ovirt-aaa-jdbc-tool
, który znajduje się na maszynie silnika, więc musisz wykonać tę rolę na maszynie silnika.
Uwaga
Proszę pamiętać, że podczas instalacji tej roli z Ansible Galaxy należy wykonać następujące polecenie:
$ ansible-galaxy install ovirt.infra
To pobierze rolę do katalogu o tej samej nazwie, co podano w linii poleceń, w tym przypadku ovirt.infra
. Należy jednak zauważyć, że jest to wrażliwe na wielkość liter, więc jeśli podasz na przykład OVIRT.infra
, pobierze tę samą rolę, ale doda ją do katalogu o nazwie OVIRT.infra
, więc musisz zawsze używać tej roli z wielką literą. Uważaj więc, jak podajesz nazwę roli w linii poleceń.
Dla instalacji RPM instalujemy trzy starsze nazwy: ovirt.infra
, oVirt.infra
i ovirt-infra
.
Możesz używać którekolwiek z tych nazw. Ta dokumentacja i przykłady w tym repozytorium używają nazwy ovirt.infra
.
Nazwy ról oVirt.infra
i ovirt-infra
są przestarzałe.
Wymagania
- oVirt Python SDK wersja 4.3
- Ansible wersja 2.9
Zmienne roli
Centrum danych
Aby skonfigurować/wyczyścić centrum danych, możesz użyć następujących zmiennych:
Nazwa | Wartość domyślna | Opis |
---|---|---|
data_center_name | UNDEF | Nazwa centrum danych. |
data_center_description | UNDEF | Opis centrum danych. |
data_center_local | false | Określa, czy centrum danych jest wspólne, czy lokalne. |
compatibility_version | UNDEF | Wersja kompatybilności centrum danych. |
data_center_state | present | Określa, czy centrum danych powinno być obecne czy nieobecne. |
recursive_cleanup | false | Określa, czy usunąć wszystkie jednostki w centrum danych rekurencyjnie. Ważne tylko, gdy stan == nieobecny. |
format_storages | false | Określa, czy sformatować WSZYSTKIE magazyny, które mają zostać usunięte jako część centrum danych. Ważne tylko, gdy data_center_state == nieobecny i recursive_cleanup == true. |
Pule MAC
Aby skonfigurować pule MAC, możesz zdefiniować zmienną listy o nazwie mac_pools
.
Elementy w liście mac_pools
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
mac_pool_name | UNDEF | Nazwa puli MAC do zarządzania. |
mac_pool_ranges | UNDEF | Lista zakresów MAC. Zakres powinien być oddzielony przecinkiem. Np.: 00:1a:4a:16:01:51,00:1a:4a:16:01:61 |
mac_pool_allow_duplicates | UNDEF | Jeśli (true) zezwolić na wielokrotne użycie adresu MAC w puli. Wartość domyślna ustawiona przez silnik oVirt na false. |
Klastry
Aby skonfigurować klastry, możesz zdefiniować zmienną listy o nazwie clusters
.
Elementy w liście clusters
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
name | UNDEF (Wymagane) | Nazwa klastra. |
state | present | Stan klastra. |
cpu_type | Intel Conroe Family | Typ CPU klastra. |
profile | UNDEF | Profil klastra. Można wybrać predefiniowany profil klastra, zobacz tabele poniżej. |
ballooning | UNDEF | Jeśli prawda, włącz optymalizację pamięci balonowej. Pamięć balonowa jest używana do dynamicznego redistribucji/odzyskiwania pamięci hosta na podstawie potrzeb VM. |
description | UNDEF | Opis klastra. |
ksm | UNDEF | Jeśli prawda, MoM zezwala na uruchomienie scalania tego samego typu stron jądra, gdy to konieczne i gdy może przynieść korzyści w zakresie oszczędzania pamięci, które przeważają nad kosztami CPU. |
ksm_numa | UNDEF | Jeśli prawda, włącza KSM dla najlepszego działania wewnątrz węzłów NUMA. |
vm_reason | UNDEF | Jeśli prawda, włącza opcjonalne pole z przyczyną, gdy maszyna wirtualna jest wyłączana z menedżera, umożliwiając administratorowi podanie wyjaśnienia dla konserwacji. |
host_reason | UNDEF | Jeśli prawda, włącza opcjonalne pole z przyczyną, gdy host jest umieszczany w trybie konserwacji z menedżera, umożliwiając administratorowi podanie wyjaśnienia dla konserwacji. |
memory_policy alias: performance_preset |
UNDEF |
|
migration_policy | UNDEF | Polityka migracji definiuje warunki dla na żywo migracji maszyn wirtualnych w przypadku awarii hosta. Obsługiwane polityki:
|
scheduling_policy | UNDEF | Polityka harmonogramowania używana przez klaster. |
ha_reservation | UNDEF | Jeśli prawda, umożliwia oVirt/RHV monitorowanie pojemności klastra dla wysoko dostępnych maszyn wirtualnych. |
fence_enabled | UNDEF | Jeśli prawda, włącza zabezpieczenia w klastrze. |
fence_connectivity_threshold | UNDEF | Próg używany przez fence_skip_if_connectivity_broken. |
fence_skip_if_connectivity_broken | UNDEF | Jeśli prawda, zabezpieczenia będą tymczasowo wyłączone, jeśli procent hostów w klastrze, które doświadczają problemów z łącznością, jest większy lub równy zdefiniowanemu progowi. |
fence_skip_if_sd_active | UNDEF | Jeśli prawda, wszyscy hostowie w klastrze, którzy są nieodpowiedni i nadal połączeni ze przechowywaniem, nie będą poddawani zabezpieczeniu. |
mac_pool | UNDEF | Nazwa puli MAC. |
comment | UNDEF | Komentarz dotyczący klastra. |
migration_bandwidth | UNDEF | Ustawienia przepustowości definiują maksymalną przepustowość zarówno dla migracji wychodzących, jak i przychodzących na hosta. Obsługiwane opcje przepustowości:
|
migration_bandwidth_limit | UNDEF | Ustawia niestandardowy limit przepustowości migracji. |
network | UNDEF | Sieć zarządzająca klastra do uzyskania dostępu do hostów klastra. |
resilience_policy | UNDEF | Polityka odporności definiuje, jak maszyny wirtualne są priorytetyzowane podczas migracji. Obsługiwane wartości:
|
rng_sources | UNDEF | Lista, która określa urządzenia generatora liczb losowych, które wszystkie hosty w klastrze będą używać. Obsługiwane generatory to: hwrng i random. |
serial_policy | UNDEF | Określa politykę numerów seryjnych dla maszyn wirtualnych w klastrze. Obsługiwane opcje:
|
serial_policy_value | UNDEF | Pozwala użytkownikowi określić niestandardowy numer seryjny. Ten parametr jest używany tylko wtedy, gdy serial_policy jest niestandardowe. |
spice_proxy | UNDEF | Serwer proxy, przez który klient SPICE połączy się z maszynami wirtualnymi. Adres musi być w następującym formacie: protokół://[host]:[port] |
switch_type | UNDEF | Typ przełącznika używanego przez wszystkie sieci w danym klastrze. Może to być dawny typ wykorzystujący most linuxowy lub ovs wykorzystujący Open vSwitch. |
threads_as_cores | UNDEF | Jeśli prawda, expose'owane wątki hosta będą traktowane jako rdzenie, które mogą być wykorzystywane przez maszyny wirtualne. |
trusted_service | UNDEF | Jeśli prawda, włącza integrację z serwerem OpenAttestation. |
virt | UNDEF | Jeśli prawda, hosty w tym klastrze będą używane do uruchamiania maszyn wirtualnych. Domyślnie jest to prawda. |
gluster | UNDEF | Jeśli prawda, hosty w tym klastrze będą używane jako węzły serwera przechowywania Gluster, a nie do uruchamiania maszyn wirtualnych. |
external_network_providers | UNDEF | Lista, która określa dostępnych zewnętrznych dostawców sieci w klastrze. |
Więcej informacji o parametrach można znaleźć w dokumentacji modułu ovirt_cluster.
Profil klastra
Możliwe opcje profile
klastra to development
i production
, ich wartości domyślne zostały opisane poniżej:
Development
Profil development
klastra ma wstępnie zdefiniowane następujące wartości:
Parametr | Wartość |
---|---|
ballooning | true |
ksm | true |
host_reason | false |
vm_reason | false |
memory_policy | server |
migration_policy | post_copy |
Production
Profil production
klastra ma wstępnie zdefiniowane następujące wartości:
Parametr | Wartość |
---|---|
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 |
Hosty
Aby skonfigurować hosty, możesz zdefiniować zmienną listy o nazwie hosts
.
Elementy w liście hosts
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
name | UNDEF (Wymagane) | Nazwa hosta. |
state | present | Określa, czy host jest obecny , czy nieobecny . |
address | UNDEF | Adres IP lub FQDN hosta. |
password | UNDEF | Hasło root hosta. Wymagane, jeśli public_key jest false. |
public_key | UNDEF | Jeśli true, klucz publiczny powinien być użyty do uwierzytelnienia do hosta. |
cluster | UNDEF (Wymagane) | Klaster, do którego musi się połączyć host. |
timeout | 1800 | Maksymalny czas oczekiwania na stan UP hosta. |
poll_interval | 20 | Interwał pollowania do sprawdzenia stanu hosta. |
hosted_engine | UNDEF | Określa, czy host jest 'wdrożony' jako hostowany silnik. |
power_management | UNDEF | Zarządzanie zasilaniem. Możesz wybrać predefiniowane zmienne, zobacz tabele poniżej. |
Jeśli z jakiegokolwiek powodu nie możesz użyć zmiennej hosts
w swoim playbooku, możesz zmienić nazwę tej zmiennej, nadpisując wartość zmiennej hosts_var_name
. Przykład:
- name: Ustaw infrastruktura oVirt
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
Zarządzanie zasilaniem hosta
Zarządzanie zasilaniem power_management
ma wstępnie zdefiniowane następujące wartości:
Nazwa | Wartość domyślna | Opis |
---|---|---|
address | UNDEF | Adres interfejsu zarządzania zasilaniem. |
state | present | Czy zarządzanie zasilaniem hosta ma być obecne/nieobecne. |
username | UNDEF | Nazwa użytkownika do połączenia z interfejsem zarządzania zasilaniem. |
password | UNDEF | Hasło użytkownika podanego w parametrze C(username). |
type | UNDEF | Typ zarządzania zasilaniem. Zdefiniowane predefiniowane wartości oVirt/RHV to drac5, ipmilan, rsa, bladecenter, alom, apc, apc_snmp, eps, wti, rsb, cisco_ucs, drac7, hpblade, ilo, ilo2, ilo3, ilo4, ilo_ssh, ale użytkownik może określić typ niestandardowy. |
options | UNDEF | Słownik dodatkowych opcji agenta zabezpieczeń (w tym slot zarządzania zasilaniem). Dodatkowe informacje o opcjach można znaleźć w https://github.com/ClusterLabs/fence-agents/blob/master/doc/FenceAgentAPI.md. |
port | UNDEF | Port interfejsu zarządzania zasilaniem. |
Sieci
Sieci logiczne
Aby skonfigurować sieci logiczne, możesz zdefiniować zmienną listy o nazwie logical_networks
.
Lista logical_networks
może zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
name | UNDEF | Nazwa sieci. |
state | present | Określa, czy stan sieci jest obecny , czy nieobecny . |
vlan_tag | UNDEF | Określ tag VLAN. |
vm_network | True | Jeśli prawda, sieć będzie oznaczona jako sieć dla VM. |
mtu | UNDEF | Maksymalna jednostka przesyłania (MTU) sieci. |
description | UNDEF | Opis sieci. |
clusters | UNDEF | Lista słowników opisujących, jak sieć jest zarządzana w określonym klastrze. |
label | UNDEF | Nazwa etykiety przypisanej do sieci. |
Więcej informacji o parametrach można znaleźć w dokumentacji modułu ovirt_network.
Sieci hosta
Aby skonfigurować sieci hosta, możesz zdefiniować zmienną listy o nazwie host_networks
.
Lista host_networks
może zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
name | UNDEF | Nazwa hosta. |
state | UNDEF | Określa, czy stan sieci jest obecny , czy nieobecny . |
check | UNDEF | Jeśli prawda, weryfikuje połączenie między hostem a silnikiem. |
save | UNDEF | Jeśli prawda, konfiguracja sieci będzie trwała, domyślnie jest tymczasowa. |
bond | UNDEF | Słownik opisujący bond sieciowy. |
networks | UNDEF | Słownik opisujący sieci, które mają być podłączone do interfejsu lub bond. |
labels | UNDEF | Lista nazw etykiety sieci do przypisania do bond lub interfejsu. |
interface | UNDEF | Nazwa interfejsu sieciowego, do którego powinna być podłączona sieć logiczna. |
Więcej informacji o parametrach można znaleźć w dokumentacji modułu ovirt_host_network.
Magazyny
Aby skonfigurować magazyny, możesz zdefiniować zmienną słownikową o nazwie storages
.
Wartość elementu w słowniku storages
może zawierać następujące parametry (kluczami są zawsze nazwy magazynów):
Nazwa | Wartość domyślna | Opis |
---|---|---|
master | false | Jeśli prawda, magazyn zostanie dodany jako pierwszy magazyn, co oznacza, że będzie to magazyn główny. |
domain_function | data | Funkcja domeny magazynu. Możliwe wartości to:
|
localfs | UNDEF | Słownik definiujący lokalne przechowywanie. |
nfs | UNDEF | Słownik definiujący przechowywanie NFS. |
iscsi | UNDEF | Słownik definiujący przechowywanie iSCSI. |
posixfs | UNDEF | Słownik definiujący przechowywanie PosixFS. |
fcp | UNDEF | Słownik definiujący przechowywanie FCP. |
glusterfs | UNDEF | Słownik definiujący przechowywanie glusterFS. |
discard_after_delete | UNDEF | Jeśli prawda, bloki domeny magazynu zostaną usunięte po usunięciu. Włączone domyślnie. Ten parametr dotyczy tylko magazynów w oparciu o blok. |
Więcej informacji o parametrach można znaleźć w dokumentacji modułu ovirt_storage_domain.
AAA JDBC
Użytkownicy
Aby skonfigurować użytkowników w dostawcy AAA JDBC, możesz zdefiniować zmienną słownikową o nazwie users
.
Elementy w liście users
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
state | present | Określa, czy użytkownik jest obecny , czy nieobecny . |
name | UNDEF | Nazwa użytkownika. |
authz_name | UNDEF | Dostawca autoryzacji użytkownika. |
password | UNDEF | Hasło użytkownika. |
valid_to | UNDEF | Określa datę, do której konto pozostaje ważne. |
attributes | UNDEF | Słownik atrybutów dotyczących użytkownika. Dostępne atrybuty:
|
Grupy użytkowników
Aby skonfigurować grupy użytkowników w dostawcy AAA JDBC, możesz zdefiniować zmienną słownikową o nazwie user_groups
.
Elementy w liście user_groups
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
state | present | Określa, czy grupa jest obecna , czy nieobecna . |
name | UNDEF | Nazwa grupy. |
authz_name | UNDEF | Dostawca autoryzacji grupy. |
users | UNDEF | Lista użytkowników, którzy należą do tej grupy. |
Uprawnienia
Aby skonfigurować uprawnienia użytkowników lub grup, możesz zdefiniować zmienną słownikową o nazwie permissions
.
Elementy w liście permissions
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
state | present | Określa, czy stan uprawnienia jest obecny , czy nieobecny . |
user_name | UNDEF | Użytkownik, dla którego zarządzane są uprawnienia. |
group_name | UNDEF | Nazwa grupy, dla której zarządzane są uprawnienia. |
authz_name | UNDEF | Nazwa dostawcy autoryzacji grupy lub użytkownika. |
role | UNDEF | Rola, która ma być przypisana do użytkownika lub grupy. |
object_type | UNDEF | Typ obiektu, który powinien być użyty do przypisania uprawnienia. Możliwe typy obiektów to:
|
object_name | UNDEF | Nazwa obiektu, do którego powinno być przypisane uprawnienie. |
Zewnętrzni dostawcy
Aby skonfigurować zewnętrznych dostawców, możesz zdefiniować zmienną słownikową o nazwie external_providers
.
Elementy w liście external_providers
mogą zawierać następujące parametry:
Nazwa | Wartość domyślna | Opis |
---|---|---|
name | UNDEF (Wymagane) | Nazwa zewnętrznego dostawcy. |
state | present | Stan zewnętrznego dostawcy. Wartości mogą być:
|
type | UNDEF (Wymagane) | Typ zewnętrznego dostawcy. Wartości mogą być:
|
url | UNDEF | URL, pod jakim hostowany jest zewnętrzny dostawca. Wymagane, jeśli stan jest obecny. |
username | UNDEF | Nazwa użytkownika używana do logowania do zewnętrznego dostawcy. Dotyczy wszystkich typów. |
password | UNDEF | Hasło użytkownika określonego w parametrze username. Dotyczy wszystkich typów. |
tenant | UNDEF | Nazwa tenantu. |
auth_url | UNDEF | URL autoryzacji Keystone dla dostawcy openstack. Wymagane dla:
|
data_center | UNDEF | Nazwa centrum danych, do którego powinien być podłączony dostawca. Dotyczy typu os_volume. |
authentication_keys | UNDEF | Lista kluczy autoryzacyjnych. Każdy klucz jest reprezentowany przez słownik, np. {'uuid': 'my-uuid', 'value': 'secret value'}. Dodano w ansible 2.6. Dotyczy typu os_volume. |
Więcej informacji o parametrach można znaleźć w dokumentacji modułu ovirt_external_provider.
Przykład Playbooka
---
- name: oVirt infra
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: Zaloguj się do 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: Wyloguj się z oVirt
ovirt_auth:
state: absent
ovirt_auth: "{{ ovirt_auth }}"
tags:
- always
Licencja
Apache License 2.0
ansible-galaxy install ovirt.infra