dynamisches Host Inventar für Ansible

Beispielausgabe von ansible-inventory

Hallo,

Aus einem Business Need heraus musste ich ein dynamisches Host Inventar für Ansible entwickeln.

Sollten Sie nicht wissen was Ansible ist, empfehle ich Ihnen die offizielle Webseite: https://www.ansible.com/ Einfach gesagt ist Ansible ein Orchestrierungstool für Anwendungen aller Art.

Dieses Modul verbindet sich auf ein vCenter und liest die ESXi-Server aus. Diese werden im Anschluss als Inventar zur Verfügung gestellt. Darüber hinaus können die Server nach verschiedenen Kriterien gruppiert werden. So können Sie entscheiden ob Sie die Hosts nach Cluster oder Datacenter gruppieren möchten.
Als Basis verwendete ich das offizielle Modul ‘vmware_vm_inventory’. Dies erleichterte die Entwicklung, da ich so einen Teil weiterverwenden konnte. Das Modul steht unter der GPLv3, womit Sie das Modul auch in eigenen Projekten verwenden dürfen.

Das Modul kann dort heruntergeladen werden: vmware_host_inventory

Damit das Modul funktioniert, benötigt es eine statische Inventardatei, welche auf diese Namen enden muss: vmware.yml, vmware.yaml, vmware_host_inventory.yml, oder vmware_host_inventory.yaml.
Die Datei benötigt mindestens diesen Inhalt:

Sie können die folgenden Einstellungen nutzen:

Name Zweck Standard
hostname Hostname oder IP des vCenter leer
username Nutzername für das vCenter leer
password Passwort für das vCenter leer
validate_certs Zertifikate validieren? True
with_tags Tags berücksichtigen? False
properties Liste an Eigenschaften für die Hosts
  • Name
  • summary.runtime.connectionState
  • summary.runtime.inMaintenanceMode
group_by_cluster Gruppiere nach Cluster? False
group_by_datacenter Gruppiere nach Datacenter? False
group_by_maintenance Gruppiere nach Wartungsmodus? True

Aufgerufen werden kann das Modul z.B. mit ansible-inventory -i vcenter.vmware.yml --list

Die Beispielausgabe sieht in meinem Fall so aus:

 

Lassen Sie gerne Ihr Feedback als Kommentar hier. Sollten Sie Wünsche und Anregungen haben, freue ich mich darauf diese annehmen zu können.

René Gessinger

Ich arbeite seit einigen Jahren als Infrastructure Architect in einem Systemhaus und Cloud Provider und betreibe vorwiegend vSphere-Umgebungen. Meine Kenntnisse und Interessen reichen von vSphere und NSX über Networking und VMware Horizon auch bis tief in Windows und Linux. Mit der Zeit kamen auch Lösungen für die Automatisierung hinzu, so z.B. Powershell, vRealize Orchestrator und Ansible. Darüber hinaus arbeite ich intern als Trainer für die Produkte vSphere, vSAN, Horizon und NSX.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.