Ansible ermöglicht es dem User beim automatisierten Erstellen von VMs nicht nur die Hardware zu spezifizieren, sondern ist ebenfalls in der Lage vApp Properties zu übergeben. Diese zusätzlichen Informationen werden beim Deployment dazu verwendet, um Konfigurationen vorzunehmen, die normalerweise nach dem ersten Bootvorgang angegeben werden müssen. Hierzu zählt zum Beispiel das Setzen einer statischen IP-Adresse oder eines DNS Servers.
So könnte ein Task zum Anlegen einer vRealize Lifecycle Manager Appliance aussehen:
Im obigen Beispiel wird das Deployment mithilfe der vordefinierten Ansible Rolle community.vmware.vmware_deploy_ovf durchgeführt. Neben den Standardangaben wie z.B. Name oder Resourcepool gibt es noch die Untergruppe Properties. In diesem Abschnitt können Werte für vApp Properties gesetzt werden.
Damit die vApp Properties richtig gesetzt werden können, ist je nach ausgerollter Appliance der Name aus dem ova-File herauszusuchen. Dazu das .ova in ein .xml-File umbenennen und mit einem Code Editor öffnen.
In dieser Datei gibt es nun Product Sections. Diese Sections haben als Untergruppe Properties – den key aus genau diesen benötigen wir nun (siehe Screenshot).
Um nun einen Hostnamen zu setzen, muss in der Ansible Role unter properties nun einfach ein Wert angegeben werden, welcher mit vami.hostname benannt ist:
Wichtig hierbei zu beachten – im Fall des Hostnamens ist die Lösung relativ simpel, da die übergeordnete Product Section keine weiteren Parameter enthält. Im Fall des Gateways ist dies anders:
Hier wird in der Product Section zusätzlich noch eine class und eine instance angegeben. Diese müssen beim Verwenden in der Ansible Role berücksichtigt werden. Es gilt folgende Syntax:
ovf:class.ovf:key.ovf:instance
Dadurch ergibt sich für den Eintrag im Ansible Task folgende Zeile:
Als letzter Punkt ist zu beachten, dass die angegebenen Werte der vApp Properties dem Typ entsprechen, welcher von der Appliance erwartet wird. Sollte dies jedoch nicht der Fall, wird beim Ausführen des Ansible Playbooks in der Fehlermeldung angegeben, welcher Wert diese Voraussetzung nicht erfüllt.