thulium_drake.vmware
Zestaw narzędzi Ansible dla VMWare
Ta rola oferuje wiele akcji do użytku z klastrami VMWare, obecnie obejmuje:
- powerstate : Zarządzanie stanami zasilania VM
- provision_guest : Tworzenie/edycja VM i szablonów (mogą obowiązywać pewne ograniczenia!)
- snap : Zarządzanie zrzutami VM
Ta rola może delegować wszystkie wymagane działania do innej maszyny, która może być inna dla każdej docelowej VM. W tej roli ten host nazywany jest 'hostem API'.
Dla zadań, które muszą zlokalizować VM w Twoim środowisku, dostępna jest dodatkowa zmienna z wszystkimi informacjami o docelowych VM. To pozwala na użycie atrybutów VMWare, na przykład w nazwach zrzutów. Te informacje można znaleźć w zmiennej 'vm_info'.
Użycie
Ten moduł wymaga użycia PyVmomi i SDK VMWare, ta rola wykryje i spróbuje zainstalować wszystkie wymagane zależności sama.
Aby uzyskać szczegółowe instrukcje dotyczące ręcznej instalacji tych zależności, sprawdź przykład konfiguracji.
Uwaga dla użytkowników RHEL 8
Ta rola działa doskonale na obu wersjach RHEL8, jednak ze względu na wymaganą wersję Pythona dla SDK vSphere, należy zmienić ansible_python_interpreter
w zależności od głównej wersji vSphere. Proszę zobaczyć przykładowe playbooki, aby uzyskać sposób jego wykrycia.
- SDK vSphere 7 wymaga Pythona 3.3+
- SDK vSphere 8 wymaga Pythona 3.8+, co wymaga niestandardowego
ansible_python_interpreter
w RHEL8
Ta rola została przygotowana z wsparciem dla vSphere 7, ale nie była testowana.
Wiele klastrów vSphere? Żaden problem!
Playbook jest skonfigurowany do używania danych uwierzytelniających vSphere i informacji w hostvars docelowej VM. Więc konfigurowanie dla wielu klastrów VMWare jest tak łatwe, jak zdefiniowanie tych danych uwierzytelniających dla danego hosta/grupy, podobnie jak każdej innej zmiennej.
Kiedy Ansible uruchamia playbook, wyszuka wszystkie wymagane informacje dla tej konkretnej, docelowej VM. Zmienne, które będą wyszukiwane dla każdego hosta (i muszą być zdefiniowane w 'group_vars') to:
- vsphere_api_host
- vsphere_datacenter
- vsphere_host
- vsphere_password
- vsphere_username
Stan zasilania
Obsługiwane stany to:
- Włączanie VM za pomocą narzędzi VMWare lub wirtualnego przycisku zasilania
- Wyłączanie VM za pomocą narzędzi VMWare lub wirtualnego przycisku zasilania
- Restart/resetowanie VM za pomocą narzędzi VMWare lub wirtualnego przycisku zasilania
Rola nie poprosi o wymagane informacje, mogą być one podane tylko za pomocą playbooka, który ją wywołuje:
- hosts: all
gather_facts: no
tasks:
- import_role:
name: vmware
vars:
target_action: "powerstate"
target_state: "powered-on"
run_once: yes
Wymagane zmienne:
- target_action: jeden z playbooków dostarczonych z tą rolą
- target_state: jeden z stanów na liście supported_states
Zrzut
Obsługiwane akcje to:
- Tworzenie zrzutów (automatycznie z datą, lub z podaną nazwą)
- Usuwanie danego lub wszystkich zrzutów
- Przywracanie do danego zrzutu, ten skrypt nie poda listy do wyboru.
Rola nie poprosi o wymagane informacje, mogą być one podane tylko za pomocą playbooka, który ją wywołuje:
- hosts: all
gather_facts: no
tasks:
- import_role:
name: vmware
vars:
target_action: "snap"
target_state: "present"
target_snapshot_name: ansible_snap_stuff
run_once: yes
Wymagane zmienne:
- target_action: jeden z playbooków dostarczonych z tą rolą
- target_state: jedna z akcji na liście supported_states
Opcjonalne zmienne:
- target_snapshot_name:
- Przy tworzeniu zrzutów: nadpisuje nazwę zrzutu
- Przy przywracaniu/usuwaniu zrzutów: zrzut docelowy do usunięcia
Provision guest
Obsługiwane akcje to:
- Tworzenie nowej VM na podstawie szablonu lub innej VM
- Usuwanie VM
- Tworzenie nowego szablonu na podstawie VM
Rola nie poprosi o żadną wymagane informacje, może być to tylko podane za pomocą playbooka, który ją wywołuje. Domyślny profil sprzętowy jest dostępny w katalogu defaults.
Aby stworzyć nową VM, wykonaj następujące kroki:
- Stwórz plik vars z następującymi informacjami (szczegóły znajdziesz w dokumentacji modułu vmware_guest oraz poniżej):
- Zasób
- Folder VM
- Szablon (upewnij się, że istnieje)
- Ustawienia dysku oraz typ kontrolera dysku
- Ustawienia sieci
- Ustawienia RAM i CPU
- Wersja sprzętowa VM i typ BIOS
- Dodaj nowy wpis do inwentarza
- Uruchom playbook, na przykład:
---
- hosts: new-host.example.com
gather_facts: no
tasks:
- import_role:
name: vmware
vars:
target_action: provision_guest
target_state: present
target_esxi_hostname: esxi.example.com
run_once: yes
Wymagane zmienne (większość z nich ma domyślną wartość):
- target_action: jeden z playbooków dostarczonych z tą rolą
- target_state: jedna z akcji na liście supported_states.
- target_esxi_hostname / target_esxi_cluster : Nazwa hosta klastra na którym VM ma działać.
- target_folder : Folder, do którego należy trafić VM
- target_networks : Słownik z ustawieniami sieciowymi. Proszę zapoznać się z dokumentacją vmware_guest.
- target_disks : Słownik z układem dysków. Proszę zapoznać się z dokumentacją vmware_guest.
- target_ram : Słownik z ustawieniami pamięci. Proszę zapoznać się z plikiem defaults dla przykładu.
- target_cpu : Słownik z ustawieniami CPU. Proszę zapoznać się z plikiem defaults dla przykładu.
- target_template: Szablon, na podstawie którego ma być stworzona VM, może to być inna VM lub szablon.
Opcjonalne zmienne:
- target_force : Ignoruj wszelkie ostrzeżenia lub błędy.
- target_scsi : Typ kontrolera dysku do użycia.
- target_boot_firmware: Typ BIOS VM.
- target_vm_version : Wersja HW VMWare do użycia.
- target_customization : Jakiekolwiek dostosowania VMWare do wykonania na VM po jej utworzeniu. Proszę zapoznać się z dokumentacją vmware_guest, aby uzyskać więcej informacji.
An Ansible toolkit for VMWare
ansible-galaxy install thulium_drake.vmware