mirror of
https://github.com/vmware/vsphere-automation-sdk-python.git
synced 2024-11-22 09:39:58 -05:00
add lab for vmworld 2017
This commit is contained in:
parent
8503fcd9a0
commit
0f1107ce53
37
vmworld2017/README.md
Normal file
37
vmworld2017/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# VMTN6720U - Hackathon Training: Getting started with the vSphere Automation SDK for Python
|
||||||
|
**Date:** 08/28/17 6:30PM-8:00PM
|
||||||
|
|
||||||
|
# Agenda
|
||||||
|
* Introduction to vSphere REST API
|
||||||
|
* vSphere Automation SDKs
|
||||||
|
* Getting Started Using the Python SDK
|
||||||
|
* Lab
|
||||||
|
|
||||||
|
# Introduction to vSphere REST API
|
||||||
|
* Consume from SDKs, CLI’s
|
||||||
|
* NOTE: Need bullets from Alan
|
||||||
|
|
||||||
|
# vSphere Automation SDKs
|
||||||
|
* Supported Languages
|
||||||
|
* Python, Java, Ruby, Perl, .NET, REST (JavaScript/Postman)
|
||||||
|
* Open Source on Github
|
||||||
|
* SDK Includes:
|
||||||
|
* Runtime
|
||||||
|
* Serialization
|
||||||
|
* Language Binding
|
||||||
|
* Python Wrapper around REST API
|
||||||
|
* API Reference Documentation (for offline usage)
|
||||||
|
|
||||||
|
# [Labs](lab.md)
|
||||||
|
|
||||||
|
**Wifi**: VMworld-Hackathon-Training-4<br />
|
||||||
|
**Wifi Password**: Hackathon2017
|
||||||
|
|
||||||
|
Connect to VC matching first letter of your last name (poorman’s load balance):
|
||||||
|
|
||||||
|
**VC1**: [192.168.104.11](https://192.168.104.11) (A-H)<br />
|
||||||
|
**VC2**: [192.168.104.13](https://192.168.104.13) (I-Q)<br />
|
||||||
|
**VC3**: [192.168.104.13](https://192.168.104.13) (R-Z)<br />
|
||||||
|
|
||||||
|
**VC Username**: administrator@vsphere.local<br />
|
||||||
|
**VC Password**: VMware1!
|
1
vmworld2017/_config.yml
Normal file
1
vmworld2017/_config.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
theme: jekyll-theme-tactile
|
182
vmworld2017/lab.md
Normal file
182
vmworld2017/lab.md
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
# VMworld 2017 Python SDK Hackathon
|
||||||
|
|
||||||
|
## Install Python
|
||||||
|
Go to: https://www.python.org/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>```|
|
||||||
|
|```<env_dir>\Scripts\activate```|```source <env_dir>/bin/activate```|
|
||||||
|
|
||||||
|
## Clone the github repo
|
||||||
|
The python github repo is located [here](https://github.com/vmware/vsphere-automation-sdk-python)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/vmware/vsphere-automation-sdk-python
|
||||||
|
```
|
||||||
|
Or optionally [download](https://github.com/vmware/vsphere-automation-sdk-python/archive/master.zip) the SDK from Github as a .zip file.
|
||||||
|
|
||||||
|
## Install dependencies
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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](https://code.visualstudio.com/)<br />
|
||||||
|
[Python Plugin](https://marketplace.visualstudio.com/items?itemName=donjayamanne.python)
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
```python
|
||||||
|
from samples.vsphere.common import vapiconnect
|
||||||
|
stub_config = vapiconnect.connect("<VC_IP_Address>", "administrator@vsphere.local", "VMware1!", True)
|
||||||
|
```
|
||||||
|
|
||||||
|
### List VMs
|
||||||
|
|
||||||
|
```python
|
||||||
|
from com.vmware.vcenter_client import VM
|
||||||
|
vm_svc = VM(stub_config)
|
||||||
|
vm_svc.list()
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Datacenters
|
||||||
|
|
||||||
|
```python
|
||||||
|
from com.vmware.vcenter_client import *
|
||||||
|
Datacenter(stub_config).list()
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Clusters
|
||||||
|
|
||||||
|
```python
|
||||||
|
Cluster(stub_config).list()
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Hosts
|
||||||
|
|
||||||
|
```python
|
||||||
|
Host(stub_config).list()
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Folders
|
||||||
|
|
||||||
|
```python
|
||||||
|
Folder(stub_config).list()
|
||||||
|
```
|
||||||
|
|
||||||
|
### List Datastore
|
||||||
|
|
||||||
|
```python
|
||||||
|
Datastore(stub_config).list()
|
||||||
|
```
|
||||||
|
|
||||||
|
### Find a specific host using a filter spec
|
||||||
|
|
||||||
|
```python
|
||||||
|
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:
|
||||||
|
|
||||||
|
```python
|
||||||
|
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](https://code.visualstudio.com/). 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:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vi samples/vsphere/vcenter/setup/testbed.py
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Windows:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
notepad samples\vsphere\vcenter\setup\testbed.py
|
||||||
|
```
|
||||||
|
|
||||||
|
And then change the following two settings:
|
||||||
|
|
||||||
|
```python
|
||||||
|
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!!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python samples/vsphere/vcenter/vm/create/create_basic_vm.py -v -n "vm_<firstname_lastname>"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verify the new VM is created successfully
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python samples/vsphere/vcenter/vm/list_vms.py -v
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run deploy ovf template sample
|
||||||
|
|
||||||
|
**NOTE:** Use single quote for password in Mac 'VMware1!'
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python samples/vsphere/contentlibrary/ovfdeploy/deploy_ovf_template.py -v -clustername "Cluster1" -libitemname "Sample_OVF"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Verify the new VM is deployed successfully
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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
|
Loading…
Reference in New Issue
Block a user