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
  • disabled - Wyłącza współdzielenie stron pamięci.
  • server - Ustawia próg współdzielenia stron pamięci na 150% pamięci systemowej na każdym hoście.
  • desktop - Ustawia próg współdzielenia stron pamięci na 200% pamięci systemowej na każdym hoście.
migration_policy UNDEF Polityka migracji definiuje warunki dla na żywo migracji maszyn wirtualnych w przypadku awarii hosta. Obsługiwane polityki:
  • legacy - Zachowanie z wersji 3.6.
  • minimal_downtime - Maszyny wirtualne nie powinny doświadczyć znacznego czasu przestoju.
  • suspend_workload - Maszyny wirtualne mogą doświadczyć bardziej znacznego przestoju.
  • post_copy - Maszyny wirtualne nie powinny doświadczać znacznego przestoju. Jeśli migracja VM nie postępuje przez długi czas, migracja zostanie przełączona na tryb post-copy.
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:
  • auto - Przepustowość kopiowana jest z ustawienia limitu prędkości [Mbps] w QoS sieci hosta centrum danych.
  • hypervisor_default - Przepustowość jest kontrolowana przez lokalne ustawienie VDSM na wysyłającym hoście.
  • custom - Zdefiniowane przez użytkownika (w Mbps).
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:
  • do_not_migrate - Zapobiega migracji maszyn wirtualnych.
  • migrate - Migracja wszystkich maszyn wirtualnych w kolejności ich zdefiniowanego priorytetu.
  • migrate_highly_available - Migracja tylko wysoko dostępnych maszyn wirtualnych, aby zapobiec przeciążeniu innych hostów.
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:
  • vm - Ustawia UUID maszyny wirtualnej jako jej numer seryjny.
  • host - Ustawia UUID hosta jako numer seryjny maszyny wirtualnej.
  • custom - Pozwala użytkownikowi określić niestandardowy numer seryjny w serial_policy_value.
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:
  • iso
  • export
  • data
.
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:
  • department
  • description
  • displayName
  • email
  • firstName
  • lasName
  • title
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:
  • dane_center
  • klaster
  • host
  • storage_domain
  • sieć
  • dysk
  • vm
  • vm_pool
  • szablon
  • cpu_profile
  • disk_profile
  • vnic_profile
  • system
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ć:
  • obecny
  • nieobecny
type UNDEF (Wymagane) Typ zewnętrznego dostawcy. Wartości mogą być:
  • os_image
  • network
  • os_volume
  • foreman
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:
  • os_image
  • network
  • os_volume
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

O projekcie

Role to manage oVirt infrastructure.

Zainstaluj
ansible-galaxy install ovirt.infra
Licencja
apache-2.0
Pobrania
153.3k
Właściciel
Open Virtual Datacenter