thulium_drake.vmware

Ansible-Toolkit für VMWare

Diese Rolle bietet mehrere Aktionen zur Verwendung mit VMWare-Clustern und umfasst derzeit:

  • powerstate : Verwaltung von VM-Leistungszuständen
  • provision_guest : Erstellen/Bearbeiten von VMs und Vorlagen (es können Einschränkungen gelten!)
  • snap : Verwaltung von VM-Schnappschüssen

Diese Rolle kann alle erforderlichen Aktionen an eine andere Maschine delegieren, die sogar für jede angezielte VM unterschiedlich sein kann. Innerhalb dieser Rolle wird dieser Host als 'API-Host' bezeichnet.

Für Aufgaben, die VMs in Ihrer Umgebung lokalisieren müssen, steht eine zusätzliche Variable mit allen Informationen der angezielten VMs zur Verfügung. Dies erlaubt die Verwendung von VMWare-Attributen, zum Beispiel in Schnappschusstiteln. Sie finden diese Informationen in der Variable 'vm_info'.

Verwendung

Dieses Modul benötigt die Verwendung von PyVmomi und dem VMWare SDK. Diese Rolle erkennt und versucht, alle erforderlichen Abhängigkeiten selbst zu installieren.

Für detaillierte Anweisungen zur manuellen Installation dieser Abhängigkeiten, bitte die Beispielkonfiguration überprüfen.

Hinweis zur Verwendung mit RHEL 8

Diese Rolle funktioniert perfekt auf RHEL8, jedoch müssen Sie aufgrund der erforderlichen Python-Version für das vSphere SDK das ansible_python_interpreter je nach Hauptversion von vSphere ändern. Bitte sehen Sie sich die Beispiel-Playbooks an, um dies zu überprüfen.

  • Das vSphere 7 SDK benötigt Python 3.3+
  • Das vSphere 8 SDK benötigt Python 3.8+, was einen benutzerdefinierten ansible_python_interpreter auf RHEL8 erfordert.

Diese Rolle wurde mit Unterstützung für vSphere 7 vorbereitet, wurde jedoch nicht getestet.

Mehrere vSphere-Cluster? Kein Problem!

Das Playbook ist so konfiguriert, dass die vSphere-Anmeldeinformationen und Informationen in den hostvars der gezielten VM verwendet werden. Das Konfigurieren von mehreren VMWare-Clustern ist also so einfach, wie diese Anmeldeinformationen für diesen spezifischen Host/Gruppe zu definieren, genau wie jede andere Variable.

Wenn Ansible das Playbook ausführt, sucht es alle erforderlichen Informationen für diese spezifische angezielte VM. Die Variablen, die pro Host nachgeschlagen werden (und in 'group_vars' definiert werden müssen), sind:

  • vsphere_api_host
  • vsphere_datacenter
  • vsphere_host
  • vsphere_password
  • vsphere_username

Powerstate

Unterstützte Zustände sind:

  • Einschalten einer VM mithilfe von VMWare-Tools oder dem virtuellen Netzschalter
  • Ausschalten einer VM mithilfe von VMWare-Tools oder dem virtuellen Netzschalter
  • Neustarten/Zurücksetzen einer VM mithilfe von VMWare-Tools oder dem virtuellen Netzschalter

Die Rolle wird NICHT nach den erforderlichen Informationen fragen, sie können nur über das Playbook bereitgestellt werden, das zum Aufrufen verwendet wird:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "powerstate"
       target_state: "powered-on"
     run_once: yes

Erforderliche Variablen:

  • target_action: eines der Playbooks, das mit dieser Rolle geliefert wurde
  • target_state: einer der Zustände in der Liste der unterstützten Zustände

Snap

Unterstützte Aktionen sind:

  • Erstellen von Schnappschüssen (automatisch mit einem Zeitstempel oder mit einem bereitgestellten Namen)
  • Löschen von bestimmten oder allen Schnappschüssen
  • Zurücksetzen auf einen bestimmten Schnappschuss, dieses Skript gibt Ihnen NICHT die Möglichkeit, aus einer Liste auszuwählen.

Die Rolle wird NICHT nach den erforderlichen Informationen fragen, sie können nur über das Playbook bereitgestellt werden, das zum Aufrufen verwendet wird:

 - 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

Erforderliche Variablen:

  • target_action: eines der Playbooks, das mit dieser Rolle geliefert wurde
  • target_state: eine der Aktionen in der Liste der unterstützten Zustände

Optionale Variablen:

  • target_snapshot_name:
    • Beim Erstellen von Schnappschüssen: den Namen des Schnappschusses überschreiben
    • Beim Zurücksetzen/Löschen von Schnappschüssen: den Ziel-Schnappschuss zum Löschen

Provision Guest

Unterstützte Aktionen sind:

  • Erstellen einer neuen VM basierend auf einer Vorlage oder einer anderen VM
  • Löschen einer VM
  • Erstellen einer neuen Vorlage basierend auf einer VM

Die Rolle wird NICHT nach den erforderlichen Informationen fragen, sie können nur über das Playbook bereitgestellt werden, das zum Aufrufen verwendet wird. Ein Standardhardwareprofil ist im Verzeichnis "defaults" verfügbar.

Um eine neue VM zu erstellen, folgen Sie diesen Schritten:

  • Erstellen Sie eine Variablen-Datei mit den folgenden Informationen (für Details siehe die Dokumentation für das vmware_guest-Modul und unten):
    • Datenspeicher
    • VM-Ordner
    • Vorlage (stellen Sie sicher, dass sie existiert)
    • Festplattensetup und Festplattentyp
    • Netzwerkeinrichtung
    • RAM- und CPU-Konfiguration
    • VM-Hardwareversion und BIOS-Typ
  • Fügen Sie einen neuen Eintrag in das Inventar ein
  • Führen Sie das Playbook aus, z. B.:
---
- 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

Erforderliche Variablen (die meisten davon haben einen Standardwert):

  • target_action: eines der Playbooks, das mit dieser Rolle geliefert wurde
  • target_state: eine der Aktionen in der Liste der unterstützten Zustände.
  • target_esxi_hostname / target_esxi_cluster : Der Name des Hosts/Clusters, auf dem die VM ausgeführt werden soll.
  • target_folder : Der Ordner, in dem die VM platziert werden soll.
  • target_networks : Ein Wörterbuch mit der Netzwerkinfrastruktur. Bitte konsultieren Sie die Dokumentation von vmware_guest.
  • target_disks : Ein Wörterbuch mit dem Festplattendesign. Bitte konsultieren Sie die Dokumentation von vmware_guest.
  • target_ram : Ein Wörterbuch mit der Speicherzuweisung. Bitte konsultieren Sie die Standardeinstellungen für ein Beispiel.
  • target_cpu : Ein Wörterbuch mit der CPU-Konfiguration. Bitte konsultieren Sie die Standardeinstellungen für ein Beispiel.
  • target_template: Die Vorlage, auf der die VM basieren soll, dies kann eine andere VM oder eine Vorlage sein.

Optionale Variablen:

  • target_force : Ignoriere alle Warnungen oder Fehler.
  • target_scsi : Der Typ des zu verwendenden Festplattencontrollers.
  • target_boot_firmware: Der BIOS-Typ der VM.
  • target_vm_version : Die zu verwendende VMWare HW-Version.
  • target_customization : Jegliche VMWare-Anpassungen, die nach der Erstellung der VM durchgeführt werden. Bitte konsultieren Sie die vmware_guest-Dokumentation für weitere Informationen.
Installieren
ansible-galaxy install thulium_drake.vmware
Lizenz
gpl-3.0
Downloads
2.2k