Kurztipp: OVA-/OVF-Vorlagen mit OVF Tool bereitstellen
Beim Bereitstellen einiger VMware Appliances unter vSphere 6.5 hatte ich kürzlich verstärkte Probleme. Unabhängig vom verwendeten Frontend (Host Client, HTML 5 Client, Web Client, C# Client) konnte keine Vorlage sauber provisioniert werden - häufige Abbrüche und "allgemeine Systemfehler" waren das Resultat.
Mark Brookfield gab mir den Tipp, anstatt einer grafischen Oberfläche OVF Tool zu verwenden. Die Konsolenanwendung dient zum Im-/Export von OVA/OVF-Vorlagen zwischen diversen VMware-Produkten und ist für Microsoft Windows, Linux und App macOS erhältlich. Das Tool kann kostenfrei heruntergeladen werden.
Der Funktionsaufruf ist prinzipiell:
1$ ovftool [parameter] quelle ziel
Einige wichtige (teilweise optionale) Parameter sind:
Parameter | Funktion |
-n / --name | Name der Ziel-VM |
-vf / --vmFolder | Order, in welchen die VM beheimatet werden soll |
--acceptAllEulas | EULA automatisch akzeptieren |
-ds / --datastore | Zu verwendender Datastore |
-dm / --diskMode | Disk Provisioning-Mode (bei vSphere: thin, thick oder eagerZeroedThick) |
--net:NIC-Name:Portgroup | Konfiguration einer Netzwerkzuordnung (Portgroup wird an NIC-Name angebunden) |
--ipProtocol | Verwendetes IP-Protokoll: IPv4, IPv6 |
--prop | Zuweisung eines OVA-/OVF-Parameters (z. B. Root-Passwort) |
--deploymentOption | Auswählen einer vApp-Konfiguration (sofern von Vorlage unterstützt) |
--powerOn | Anschalten der VM nach Provisionierung |
Das Target muss einem bestimmten Format folgen, das sich mir nicht unbedingt direkt erschlossen hat. Einige Beispiele für vSphere:
Locator | Beschreibung |
vi://myvcenter/mydatacenter/host/mycluster | Beliebiger Hosts eines konkreten Datacenters und Clusters |
vi://admin:admin@myvcenter/mydatacenter/host/mycluster | wie oben, jedoch mit vorgegebenen Login-Informationen |
vi://myvcenter/mydatacenter/vm/myfolder/myvm | Angabe eines konkreten Datacenters, VM-Ordner und VM-Namen |
vi://myvcenter/mydatacenter/host/myesx | Angabes eines konkreten ESXi-Hosts eines Datacenters |
vi://myvcenter/mydatacenter/host/myesx/Resources/myresource | wie oben, jedoch mit konkretem Ressourcenpool |
Weitere Beispiele finden sich in der Online-Hilfe des Tools:
1$ ovftool -h | less
2$ ovftool -h locators | less
3$ ovftool -h examples | less
Die OVA-/OVF-Quelle muss sich übrigens nicht auf der lokalen Festplatte befinden, es kann auch über einen Webserver (http://pfad, https://pfad) oder FTP-Server (ftp://pfad) bezogen werden.
Bevor eine Vorlage bereitgestellt wird, empfiehlt es sich, einen Blick in die verfügbaren Optionen zu werfen. Hier werden unter anderem benötigte Netzwerk-Schnittstellen aufgelistet:
1$ ovftool --hideEula VMware-vSAN-Witness-201704001-5310538.ova
2...
3Networks:
4 Name: Management Network
5 Description: Management Network will be used to drive witness vm traffic
6
7 Name: Witness Network
8 Description: Witness Network will be used to drive witness vm traffic
9
10In diesem Fall müssen gültige Zuordnungen für **Management Network** und **Witness Network** zugewiesen werden. Anschließend sollte man sich die verfügbaren Eigenschaften ansehen:
11
12...
13Properties:
14 ClassId: vsan
15 Key: witness.root.passwd
16 Label: Root password
17 Type: password(7..)
18 Description: Set password for root account.
19...
Manche werden zwingend benötigt, wie in diesem Fall für das Root-Password, manche sind optional. Manche OVA-/OVF-Vorlagen bieten Deployment-Optionen bzw. "T-Shirt-Größen" an:
1Deployment Options:
2 Id: tiny
3 Label: Tiny (10 VMs or fewer)
4 Description: Configuration for Tiny vSAN Deployments with 10 VMs or fewer
5
6 * 2 vCPUs
7 * 8GB vRAM
8 * 1x 12GB ESXi Boot Disk
9 * 1x 15GB Magnetic Disk
10 * 1x 10GB Solid-State Disk
11 * Maximum of 750 Components
12
13 Id: normal (default)
14 Label: Medium (up to 500 VMs)
15 Description: Configuration for Medium vSAN Deployments of up to 500 VMs
16
17 * 2 vCPUs
18 * 16GB vRAM
19 * 1x 12GB ESXi Boot Disk
20 * 1x 350GB Magnetic Disk
21 * 1x 10GB Solid-State Disk
22 * Maximum of 22K Components
23
24 Id: large
25 Label: Large (more than 500 VMs)
26 Description: Configuration for Large vSAN Deployments of more than 500 VMs
27
28 * 2 vCPUs
29 * 32GB vRAM
30 * 1x 12GB ESXi Boot Disk
31 * 3x 350GB Magnetic Disks
32 * 1x 10GB Solid-State Disk
33 * Maximum of 45K Components
Hier gibt es drei fertige Größen, die Anforderungen und Einsatzgebiete werden entsprechend dargestellt.
Der vollständige Aufruf sieht dann beispielsweise wie folgt aus:
1$ ovftool --acceptAllEulas -ds=NFS-Backup --net:"Management Network"="DPortGroup-MGMT" --net:"Witness Network"="DPortGroup-VSAN" --prop:witness.root.passwd=... --deploymentOption=tiny VMware-vSAN-Witness-201704001-5310538.ova vi://st-vcsa03.stankowic.loc/Stankowic/host/Darmstadt/
2Opening OVA source: VMware-vSAN-Witness-201704001-5310538.ova
3The manifest validates
4Source is signed and the certificate validates
5Enter login information for target vi://st-vcsa03.stankowic.loc/
6Username: administrator@vsphere.local
7Password: ...
8Opening VI target: vi://administrator%40vsphere.local@st-vcsa03.stankowic.loc:443/Stankowic/host/Darmstadt/
9Deploying to VI: vi://administrator%40vsphere.local@st-vcsa03.stankowic.loc:443/Stankowic/host/Darmstadt/
10Transfer Completed
Erhält man Warnung wie beispielsweise:
1Warning:
2- OVF property with key: 'witness.root.passwd' does not exists.
Ist es ratsam, einen Blick in den Reiter vApp-Optionen in der VM-Konfiguration zu werfen. Hier fehlt ein benötigter Wert, der vor dem Einschalten der Appliance ergänzt werden sollte.
Mithilfe des Tools war ich schlussendlich in der Lage, weitere vApps in meinem Homelab bereitzustellen - schade, dass dies jedoch nicht über die zahlreichen Frontends möglich ist. Ich weiß nicht, ob die Ursache in meinem Homelab begraben liegt, oder ob es ein generelles Problem (Bug?) ist. Hier muss ich mal näher investigieren...