An attendee of our Building Network Automation Solutions online course decided to automate his NSX-T environment and sent me this question:
I will be working on NSX-T quite a lot these days and I was wondering how could I automate my workflow (lab + production) to produce a certain consistency in my work.
I’ve seen that VMware relies a lot on PowerShell and I’ve haven’t invested a lot in that yet … and I would like to get more skills and become more proficient using Python right now.
Always select the most convenient tool for the job, and regardless of personal preferences PowerShell seems to be the one to use in this case. I know people who totally automated their NSX-V deployments using it (see also the PowerNSX part of our free PowerShell for Networking Engineers webinar).
I never looked into the details of NSX-T API, but NSX-V (and everything else vSphere-related) seems to use SOAP (XML-based) REST API, and NSX-T is probably no different. While it’s possible to interface with that API in any programming language, dealing with XML and its namespaces quickly becomes a major pain, so it’s much easier if someone already wrote the wrappers that provide high-level functionality like Anthony Burke and Nick Bradford did for NSX-V.
Last year VMware release PowerShell cmdlets for NSX-T, so that would be the natural way to go.
What do you think I should do? Start trying to reinvent my wheel that could help me to get more skills in Python and scratch my head? Or not reinvent the wheel but still scratch my head and stick with PowerShell?