PowerCLI vCloud Director Customer Provisioning

Ich konnte letzte Woche endlich ein kleines Projekt fertigstellen, welches mich schon etwas länger verfolgte. Das vCloud Director Customer Provisioning mit VMware PowerCLI. Neue Kunden im VMware vCloud Director anzulegen ist wieder mal ein Paradebeispiel für eine Automation, denn es muss schnell, standardisiert und hoffentlich oft erledigt werden.

vCloud Director Customer Provisioning - PS Console

Die meisten Service Provider werden diese Aufgabe nicht unbedingt per PowerShell abbilden, sondern ehr direkt die API des VMware vCloud Director nutzen. Ich wollte jedoch mit meinem Projekt vCloud Director Customer Provisioning sehen, ob das Komplett mit VMware PowerCLI abbildbar ist. Eines schon vorweg, es ist nicht sehr komfortabel und auch nur eingeschränkt möglich.

Schritte beim vCloud Director Customer Provisioning

Die Anlage eines komplett neuen Kunden ist in mehrere Schritte gegliedert, welche teilweise in der richtigen Reihenfolge ausgeführt werden müssen.

Initial müssen allerdings erst noch die PowerShell Module geladen und der VMware vCloud Director verbunden werden:

Create VMware vCloud Director Organization

Die Organisationen im VMware vCD kann man als Mandanten betrachten. Jeder Kunden hat im Normalfall seine eigene Organisation hinter der eine eigene URL und seine eigenen Benutzer sowie Ressourcen stehen.

Wie auch für die meisten weiteren Schritte gibt es in VMware PowerCLI ein natives Cmdlet für das Erstellen einer neuen Organisation: New-Org
Für meine Zwecke hat dieses Cmdlet allerdings zu wenig Möglichkeiten die Optionen der Organisation direkt beim Anlegen anzupassen.

Meine weiterführenden Optionen:

  • Catalog Publishing
  • Catalog Subscription
  • VM Quota
  • Stored VM Quota
  • VM Lease Time
  • Stored VM Lease Time
  • Password Policy Settings

Daher habe ich für das vCloud Director Customer Provisioning folgende Funktion geschrieben um alle meine Anforderungen zu erfüllen:

vCloud Director Customer Provisioning - Org

Create VMware vCloud Director Organization Administrator

Um dem neuen Kunden auch Zugriff auf seine Ressourcen zu gewähren muss mindestens ein User initial angelegt werden, Im optimalen Fall ist das ein Organisations Administrator. Mit diesem User kann der Kunden dann alle weiteren User selbst anlegen und einige Einstellungen anpassen (Siehe auch: Predefined Roles and Their Rights).

Für diesen Prozess gibt es leider kein natives Cmdlet in VMware PowerCLI.

Meine Funktion zur Useranlage sieht vor, dass der User für das vCloud Director Customer Provisioning fix als Organisations Administrator angelegt wird:

vCloud Director Customer Provisioning - Org User

Create VMware vCloud Director Organization VDC

Als letzter und umfangreichster Schritt soll der Kunde noch ein Virtual Datacenter (VDC) bekommen. Das Organization VDC (OrgVDC) legt grob gesagt die Compute, Storage und Netzwerk Ressourcen für den Mandanten fest.

Speziell die Storage Ressourcen gestalten sich in der Anlage ziemlich komplex wenn man mit Storage Profiles arbeitet. Weder das native Cmdlet zur Anlage eins neuen OrgVDC (New-OrgVdc) noch das Cmdlet zum Anpassen dieser (Set-OrgVdc) kennen Storage Profiles. Mit dem korrekten Storage Profil kann dann auch ein Privater Katalog für Medien und vApp Templates in der Organisation erstellt werden. Diesen Schritt könnte der Kunde zwar auch selbst erledigen, aber wenn wir ja sowieso schon dabei sind…

Note:

Das Provider VDC muss das Storage Profile ‚Any‚ aktiviert haben um das Provisionieren zu ermöglichen.
Dieses wird dann temporär dem neuen OrgVDC zugeordnet aber dann direkt gegen das korrekte ersetzt.

Aber auch im bereich Netzwerk gibt es einige Hürden zu nehmen. VXLAN Network Pools und External Networks sind auch nicht gerade simpel bereitzustellen.

Da es sich ja um ein standardisiertes Bereitstellen handelt werden auch wieder einige Optionen fix gesetzt.

Fixe Optionen:

  • Allocation Model
  • Network Quota
  • VM Quota
  • ‚vCpu In Mhz‘
  • Fast Provisioning
  • Thin Provisioning

Meine Funktion zum Bereitstellen eines Org VDC für das vCloud Director Customer Provisioning sieht dann so aus:

vCloud Director Customer Provisioning - Org VDC

vCloud Director Customer Provisioning - Catalog

Starten des vCloud Director Customer Provisioning

Um nun die oben aufgeführten Schritte alle mögliches effizient in Kombination auszuführen habe ich mir eine übergeordnete Funktion erstellt. Diese PowerShell Funktion wird mit einem JSON Config File gefüttert und ruft dann die erforderlichen Funktionen mit den entsprechenden Parametern auf.

In dieser übergeordneten Funktion habe ich zusätzlich die Möglichkeit abgebildet mit OrgVDC T-Shirt Sizes zu arbeiten. Das bedeutet hinter der Größe M ist dann bereits ein gewisse Parametrisierung für CPU RAM und Storage hinterlegt. Wenn in dem JSON File das Feld ‚FixedSize‘ leer ist („FixedSize“: „“,) werden die darauffolgenden, manuellen Werte verwendet.

Ähnliches gilt für das Feld ‚ExternalNetwork‘. Ist dieses leer wir das neue OrgVDC ohne ein Externes Netzwerk angelegt.

Das JSON Config File

Die PowerShell Funktion

Offene Punkte vCloud Director Customer Provisioning

Wie dem aufmerksamen Leser vielleicht aufgefallen ist, kann die New-MyOrgVdc Funktion zwar auf Wunsch ein Externel Netzwerk im Bridged Modus dem OrgVDC hinzufügen aber ’noch‘ kein Edge Gatway.

Ich arbeite hier weiter an einer Möglichkeit. Wer da bereits etwas Vergleichbares in PowerShell abgebildet hat kann mir gerne eine Tipp geben. Auf meine VMware Community Frage gab es leider bisher keine Reaktionen.

Später soll das vCloud Director Customer Provisioning Modul dann über das blanke Anlegen hinaus erweitert werden. Also Erweitern der Ressourcen eines OrgVDC, hinzufügen weiterer Storage Profiles und weitere Dinge dieser Art.

Das vCloud Director Customer Provisioning Projekt

Pester Tests

Für mein Projekt habe ich auch ein paar grundlegende Pester Tests vorgesehen. Die Tests validieren die PowerShell Syntax, die Voranforderungen auf dem System und den erfolgreichen Import des Modules.

vCloud Director Customer Provisioning - Pester Tests

Read the Docs

Um den Einstieg in das vCloud Director Customer Provisioning etwas zu erleichtern habe ich, wie in meinem Plaster Artikel angekündigt, eine kleine Dokumentation der Funktionen bereitgestellt:

Welcome to my VMware-vCD-Module Module

vCloud Director Customer Provisioning - Read The Docs

GitHub Repository

Ein GitHub Repository durfte natürlich auch wieder nicht fehlen:

GitHub: VMware-vCD-Module

vCloud Director Customer Provisioning - GitHub Repository

Weitere Quellen

#LongLiveVCD

Hat Ihnen der Beitrag gefallen?

Nutzen Sie gerne für Ihren nächsten Amazon Einkauf diesen Affiliate Link und unterstützt Sie damit den Author des Artikels: http://amzn.to/2pAgZOD

Um schnell und einfach Ihre Lieblings Blogs und Autoren zu unterstützen, ist der Dienst Flattr ebenfalls eine tolle Möglichkeit!

Vielen Dank!

3 Comments

  1. William de Marigny Juni 14, 2017
    • Markus Kraus Juni 14, 2017

Leave a Reply

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen