Have you ever wanted to automate creating a Datacenter or a Cluster in your vCenter using pyVmomi but didnt know where to start? I created a sample in the community samples project that does just that. It is pretty simple to use, and I will demonstrate that now.
First lets run the script with the -h argument to see what options it takes:
± |master ✗| → python make_dc_and_cluster.py -h usage: make_dc_and_cluster.py [-h] -s HOST [-o PORT] -u USER [-p PASSWORD] -n DCNAME -c CNAME Standard Arguments for talking to vCenter optional arguments: -h, --help show this help message and exit -s HOST, --host HOST vSphere service to connect to -o PORT, --port PORT Port to connect on -u USER, --user USER User name to use when connecting to host -p PASSWORD, --password PASSWORD Password to use when connecting to host -n DCNAME, --dcname DCNAME Name of the Datacenter to create. -c CNAME, --cname CNAME Name to give the cluster to be created.
As we can see you will need to supply a HOST name (this can also be an IP), a PORT number (the default is 443), a USER to connect as, and a PASSWORD for that user. For this to work properly your user will need the following permissions in vCenter Host.Inventory.CreateCluster and Datacenter.Create. We also need to provide a DCNAME which is the name of the Datacenter we want to create, and finally a name for the new (empty) Cluster. This sample does the absolute minimum to create these objects in your inventory. If you want to customize any settings you will need to modify the code to provide your own ClusterConfigSpecEx. If one is not provided which is how the sample works it uses an empty spec which creates a Cluster using all default settings. Enough talk, lets run this and setup a new Datacenter and Cluster. Here is a screenshot of my inventory before we start:
|master ✗| → python make_dc_and_cluster.py -s 172.16.214.129 -u 'email@example.com' -p password -n 111222333 -c '111222333 - Prod Cluster'
And here we have our new Datacenter and Cluster