Deze blogserie bestaat uit meerdere delen, die in de komende maanden uitkomen. De volgende delen zijn op dit moment uitgebracht of gepland:
Nadat we in deel 1 de basisprincipes van de REST API hebben uitgelegd en we in deel 2 een werkend voorbeeld van een bevraging in PowerShell hebben gemaakt, gaan we in dit deel met PowerShell een netwerk aanmaken met een Edge, een Distributed Logical Router en drie logische switches. Het netwerk wordt aangemaakt inclusief routing-configuratie voor OSPF-routers. Of deze routing-configuratie goed gaat werken hangt uiteraard van uw situatie af, niet iedereen heeft OSPF in het netwerk geconfigureerd.
De volledige code van deze blogserie is hier te vinden:
https://bitbucket.org/metisit/powershellnsxrestapi/src
De code van dit deel staat in de folder ‘Part 3’ en bestaat uit 4 bestanden, namelijk:
Demo-NSXTier.json | De configuratie van het te maken netwerk in JSON-formaat. |
Demo-NSXTier.pdf | Schema van het te maken netwerk in PDF-formaat. |
Create-NSXTier.ps1 | Het PowerShell-script om het netwerk aan te maken. |
Remove-NSXTier.ps1 | Het PowerShell-script om het netwerk te verwijderen. |
Het netwerk komt er als volgt uit te zien (een grotere versie staat als pdf in BitBucket):
De hoeveelheid PowerShell-code is te groot om volledig in deze blog te behandelen, dus de beschrijving in deze blog blijft beperkt tot het configuratiebestand en de belangrijkste delen van de code.
Het configuratiebestand is gemaakt in JSON (JavaScript Object Notation). De reden dat we JSON gebruiken i.p.v. XML is tweeledig:
Het configuratiebestand bestaat uit de volgende onderdelen:
Als u het script ‘Create-NSXTier.ps1’ aanroept om het netwerk aan te maken dan geeft dit, als alles juist is geconfigureerd, de volgende uitvoer:
Zoals u in bovenstaand plaatje kunt zien, worden eerst de switches aangemaakt en daarna pas de DLR en de Edge. Reden hiervoor is dat we bij de configuratie van de Router en de Edge gelijk de interfaces willen configureren, en dat kan alleen als de switches al bestaan.
In het configuratiebestand staan er IP-adressen bij de switches, maar feitelijk heeft een switch helemaal geen IP-adres. Het IP-adres wat bij de switch staat is het IP-adres van de poort waarmee de router/edge aan de switch is gekoppeld.
Wat ook belangrijk is om te weten, is dat de routing van de Edge en de Router pas kan worden geconfigureerd als de Edge of Router al zijn aangemaakt. Het in één keer configureren, inclusief routing, werkt niet.
Als u het script ‘Remove-NSXTier.ps1’ aanroept om het netwerk te verwijderen dan geeft dit de volgende uitvoer:
Bij het verwijderen worden eerst de Edge en de Router verwijderd. Daarna wordt er 10 seconden gewacht en vervolgens worden de switches verwijderd. Reden voor de wachttijd is om NSX Manager de tijd te geven om de switches los te koppelen van de Edge/Router, anders mislukt het verwijderen van de switches mogelijk.
Enkele relevante onderdelen van de code in ‘Create-NSXTier.ps1’:
In het script ‘Remove-NSXTier.ps1’ wordt maar één constructie gebruikt die nieuw is, namelijk het verwijderen van een object (regel 126 t/m 131):
Met ‘-Method Delete’ wordt aangegeven dat het object verwijderd moet worden.
In de volgende deel gaan we PowerNSX behandelen.