NSX Edge Gateway to vCloud Org Relationship

Für einige Administrative Tasks ist es leider notwendig die NSX Edge Gateways in einer VMware vCloud Director Umgebung den Orgs (Tenants) zuzuordnen. In meinem Fall waren es anstehende Edge Gateway Updates nach einem NSX Update. Die Zuordnung ist zwar sehr einfach aus VMware vCloud Director Sicht aber leider komplex aus VMware NSX Sicht, da sich die Namen der Objekte nicht decken müssen (z.B. verursacht durch nachträgliches Umbenennen).  Dazu kommen noch Edge Gateways die durch ein vApp Netzwerk erzeugt wurden, diese tauchen auch im VMware vCloud Director nicht zentral auf. Die Lösung um die NSX Edge Gateway to vCloud Org Relationship aufzulösen sollte mal wieder ein PowerShell Skript sein, und sogar ein ziemlich simples.

Das Problem

Die Ansicht aus dem VMware NSX vCenter Plugin lässt leider keinen offensichtlichen Verweis auf die VMware vCloud Director Organisation zu. Hilfreich könnte nur ein gutes Namensschema sein. Dieses ist aber spätestens bei vApp Netzwerken hinfällig, in dem Fall vergibt der Tenant mit dem vApp Netzwerknamen selbst den Edge Gateway Namen (in meinem Beispiel „Restore Test“).

NSX Edge Gateway to vCloud Org Relationship - NSX Edges

Die Lösung

Das vorherige Beispiel legt die Lösung bereits nahe, denn NSX realisiert die Mandantentrennung auch anhand von Tenants. Der Tenant Name im NSX ist die Id der vCloud Director Organistion.

Mit diesem Wissen und zwei PowerShell Modulen (PowerCLI und PowerNSX) lässt sich also eine Verbindung herstellen.

PowerNSX NSX Edge Gatway:

NSX Edge Gateway to vCloud Org Relationship - PowerNSX Edges

Man beachte das Feld „tenant“.

PowerCLI vCloud Director Org:

NSX Edge Gateway to vCloud Org Relationship - vCD Orgs

Die PowerCLI Id der Org beinhaltet die echte Tenant ID, welche dann identisch mit dem NSX Tenant is.

NSX Edge Gateway to vCloud Org Relationship Script

Um den kleinen Report zu erzeugen ist es neben dem Laden der beiden PowerShell Module (PowerCLI und PowerNSX) noch notwendig eine Verbindung zu dem betreffenden vCloud Director und dem NSX Manager herzustellen. Damit kann die Verbindung zwischen vCloud Org und NSX Edge Gatway hergestellt werden.

NSX Edge Gateway to vCloud Org Relationship

Import-Module VMware.VimAutomation.Cloud, PowerNSX
Connect-CIServer vcd.lab.local
Connect-NsxServer -vCenterServer vcs01.lab.local

$Orgs = Get-Org
$Edges = Get-NsxEdge

$myView = @()
Foreach ($Edge in $Edges) {
    $Report = [PSCustomObject] @{
            Name = $Edge.Name
            VcdOrg = ($orgs | where {$_.Id -match $edge.Tenant}) 
       }
    $MyView += $Report
}

$MyView | Sort UpdateAvailable, VcdOrg |  ft -AutoSize

Zeile 1: vCloud PowerCLI und PowerNSX Modul laden

Zeile 2: vCloud Director verbinden

Zeile 3: NSX Manager verbinden über das vCenter

Zeile 5-6: Objekte Sammeln

Zeile 8-17: Objekte in Relation bringen und Report erstellen

Zeile 12: Vergleich der beiden Id`s

Leave a Reply