1
0
mirror of https://github.com/vmware/vsphere-automation-sdk-python.git synced 2024-11-22 09:39:58 -05:00
vsphere-automation-sdk-python/lab.md
2017-08-28 15:26:39 -07:00

4.0 KiB

VMworld 2017 Python SDK Hackathon

Install Python

Go to: downloads and download and install Python for your Platform. The SDK supports both python2 and python3, but we recommend to install the latest version of python3.

Setup Python SDK

Create and activate a virtual env:

Python2:

virtualenv <env_dir>

Python3:

Windows OSX
py -m venv <env_dir> python3 -m venv <env_dir>

Activate your virtual env:

Windows OSX
<env_dir>\Scripts\activate source <env_dir>/bin/activate

Clone the github repo

The python github repo is located here

git clone https://github.com/vmware/vsphere-automation-sdk-python

Or optionally download the SDK from Github as a .zip file and unzip it to the current dir.

Install dependencies

cd vsphere-automation-sdk-python
pip install -r requirements.txt

Set PYTHONPATH to use SDK helper methods

Linux/Mac:

export PYTHONPATH=${PWD}:$PYTHONPATH

Windows:

set PYTHONPATH=%cd%;%PYTHONPATH%

OPTIONAL: Install Visual Studio Code IDE

Microsoft's Visual Studio Code is a great (free) IDE that can be used for Python via a plugin providing a rich development environment.

Visual Studio Code
Python Plugin

vSphere Python SDK Examples

Start the Python command interpreter:

Linux/Mac:

python3

Windows:

py

List VC inventory in interactive mode

Connect to the vSphere REST API endpoint

from samples.vsphere.common import vapiconnect
stub_config = vapiconnect.connect("<VC_IP_Address>", "administrator@vsphere.local", "VMware1!", True)

List VMs

from com.vmware.vcenter_client import VM
vm_svc = VM(stub_config)
vm_svc.list()

List Datacenters

from com.vmware.vcenter_client import *
Datacenter(stub_config).list()

List Clusters

Cluster(stub_config).list()

List Hosts

Host(stub_config).list()

List Folders

Folder(stub_config).list()

List Datastore

Datastore(stub_config).list()

Find a specific host using a filter spec

filter_spec = Host.FilterSpec(names=set(["<HOST_IP_Address>"]))
Host(stub_config).list(filter_spec)

Note: To exit interactive Python simply type quit() and press Return:

quit()

Run samples on github

For this portion of the lab we recommend using your favorite code editor or as mentioned above download and install Visual Studio Code. We will be using Visual Studio code to demo these examples.

Open the sample property file testbed.py using your favourite text editor, such as:

Linux/OSX:

vi samples/vsphere/vcenter/setup/testbed.py

Windows:

notepad samples\vsphere\vcenter\setup\testbed.py

And then change the following two settings:

config["SERVER"] = "<VC_IP_Address>"
config["VM_DATASTORE_NAME"] = "vsanDatastore"

Run create basic VM sample

NOTE: Be sure to name the VM using your First and Last name so it's unique!!

python samples/vsphere/vcenter/vm/create/create_basic_vm.py -v -n "vm_<firstname_lastname>"

Verify the new VM is created successfully

python samples/vsphere/vcenter/vm/list_vms.py -v

Run deploy ovf template sample

NOTE: Use single quote for password in Mac 'VMware1!'

python samples/vsphere/contentlibrary/ovfdeploy/deploy_ovf_template.py -v -clustername "Cluster1" -libitemname "Sample_OVF"

Verify the new VM is deployed successfully

python samples/vsphere/vcenter/vm/list_vms.py -v

Exercises

Try to use the sample_template to create three scripts and then run them:

  • Power on/off the VM you created
  • Edit VM cpu/memory
  • Add a CD-ROM to your VM