SlideShare a Scribd company logo
Introduction to vSphere APIs Using pyVmomi
pyVmomi
Michael Rice
@VirtDevNinja
http://errr-online.com/
https://github.com/michaelrice
About Michael Rice
❖ Software Developer @ Rackspace
❖ Trust me, I have a Linux beard.
❖ http://linuxbeard.com/image/114385301362
❖ RPM Package Maintainer for pyVmomi
❖ Leading community contributor to pyVmomi & community-
samples
❖ Creator of YAVIJAVA the VIJAVA fork
❖ StackOverflow pyVmomi & VIJAVA
About pyVmomi
❖ Open Source python SDK for vSphere
❖ Released Dec 2013
❖ License: Apache 2.0
❖ Python VMWare Managed Object Management Interface
❖ Other Vmomi projects include GoVmomi & rbVmomi
❖ Wraps vSphere WebServices SOAP API very tightly
❖ Its been around a long time!! Look on your 4.0 HostSystems!
❖ Multiple versions. Whats on HostSystems != whats on GitHub
Why Use Python & pyVmomi
❖ Python is easy for beginners to learn
❖ vSphere 6.0 VMWare released VMWare vCloud Suite SDK for Python
❖ http://developercenter.vmware.com/web/sdk/60/vcloudsuite-python
❖ Python is in the top 10 languages you should be learning RIGHT NOW!
❖ If you work in a mixed environment of admins running Windows, Mac and Linux then
the same Python code works for everyone! (mostly)
❖ Integrate with ConfigManagement like Ansible & SaltStack
❖ pySphere and pSphere are much slower because they use SUDS
❖ pyVmomi is FAST! 360 milliseconds to inventory 576 VMs
❖ Do tasks you can normally only do from the UI — Reset Alarms from Red to Green
Setting Up a Development
Environment
❖ Setup a Development vCenter using Simulator
❖ Install Python and VirtualEnv on our desktop
❖ Install Python IDE — pyCharm/IntelliJ, pyDev, etc..
❖ No Intelli-Sense due to dynamic nature of library
❖ Install pyVmomi
Installing vCenter SA
❖ Download vCenter Server Appliance 5.5 ova
❖ 6.0 has a bug and Simulator DOES NOT WORK!
❖ Deploy the OVA to Fusion or Workstation
❖ Use simple shell script to configure VCSA Simulator
❖ https://gist.github.com/michaelrice/
#!/bin/bash
# See the original work from William Lam at http://www.virtuallyghetto.com/
echo "Accepting EULA ..."
/usr/sbin/vpxd_servicecfg eula accept
echo "Setting default ports ..."
/usr/sbin/vpxd_servicecfg 'ports' 'defaults'
echo "Configuring Embedded DB ..."
/usr/sbin/vpxd_servicecfg 'db' 'write' 'embedded'
echo "Configuring SSO..."
/usr/sbin/vpxd_servicecfg 'sso' 'write' 'embedded' 'password'
echo "Starting VCSIM ..."
/usr/bin/vmware-vcsim-start default
echo "Starting VCSA ..."
/usr/sbin/vpxd_servicecfg service start
Install Python & VirtualEnv
❖ Please See one of the 1000’s of guides online
❖ I use 2.7 but pyVmomi supports the following versions
of Python: 2.6, 2.7, 3.3, 3.4
❖ On Mac consider brew install of python
Install an IDE
❖ pyCharm/IntelliJ
❖ pyDev
❖ Other
Install pyVmomi
❖ Universal/Recommended
❖ pip install -U pyvmomi
❖ RHEL/Fedora/CentOS
❖ yum install pyvmomi
❖ FreeBSD
❖ pkg install pyvmomi
Not So Fast!!
vSphere Object Model
❖ Managed Objects
❖ HostSystem, VirtualMachine, Folder, Network, etc..
❖ Managed Object Reference
❖ Used in MO to point to other associated managed objects
❖ Data Objects
❖ Information about a Managed Object. Properties of the
MO
Object Diagram
Basic Usage with Actual
Code!!
>>> from pyVim.connect import SmartConnect
>>> si = SmartConnect(host="vcsa", user="admin", pwd="password")
>>> host = si.content.searchIndex.FindByDnsName(None, “DC0_C0_H0”, False)
>>> print host.name
DC0_C0_H0
>>> print host.summary.hardware.model
ProLiant DL380 G5
3 Lines of Code to get a HostSystem!
List All HostSystems in
vCenter
service_instance = SmartConnect(User, Password, HostName)
Hosts = GetAllHosts(service_instance)
for host in Hosts:
PrintHostInfo(host)
def PrintHostInfo(host):
# print various property info for a given host
def GetAllHosts(service_instance):
# do work needed to get host related info here…
Solving Business Problems
❖ SAN Team has a “Non Impacting No Downtime Maintenance” to do on the SAN
Switches
❖ All customers have redundant connections
❖ Maint will require them to bring down A chan restore it then bring down B
chan and restore it
❖ Such a low risk VirtSupport not informed only customer is notified.
❖ vCenter Alarms monitor the SAN connections
❖ They see redundancy lost & trigger SNMP trap.
❖ Ticket is generated for each device!!
❖ 30 mins later its 3am & 100’s of tickets have hit the queue fire drill begins!
Solving Business Problems
❖ Already had SOP in place for how to manually work the Redundancy lost tickets
❖ Use python to connect to various APIs in company to gather data from ticket to
automate the SOP
❖ Use pyVmomi to connect vCenter to check for actual problem.
❖ Rescan HBA etc..
❖ Use pyVmomi to ack alarm & reset from red to green
❖ Use python to hit ticket API to close ticket if fixed or flag as real issue for
VirtSupport to go look at
❖ While this code was in production it worked 1000’s of tickets saving Rackers 100’s
of hours in NVA work.
Valuable Tools
❖ Onyx
❖ https://labs.vmware.com/flings/onyx
❖ Latest Version: 2.2.5
❖ Capture all traffic happening between client and server
❖ DoubleCloud Proxy
❖ Created by: Steve Jin
❖ http://www.doublecloud.org/doublecloud-proxy/
❖ Capture all traffic happening between client and server
Onyx & DoubleCloud Proxy
❖ Start the app and point them at your target vSphere
server
❖ Point your script or VIClient etc.. at proxy
❖ Profit
Things Ive Learned
❖ There are several “hidden” folders
❖ These can all be seen using the MOB
❖ HostSystems do not always have a unique UUID
❖ On Dell if Service Tag not set in BIOS it uses a generic default UUID
❖ When searching for them use the DNS Name or InventoryPath +
name
❖ InventoryPath can be tricky. Use MOB for help
❖ Using the UUID will return the first one it finds
❖ http://kb.vmware.com/kb/1006250
Things Ive Learned
❖ VirtualMachine BIOS UUID is shared by VMS in a vApp
❖ The only thing unique for use in searching for a VM is
the instance UUID so use it or the InventoryPath +
name
❖ Property Collectors are complicated but worth the extra
work
❖ You CAN NOT SCALE with out them!!
Must Have Links
❖ pyVmomi docs: https://github.com/vmware/pyvmomi/tree/master/docs
❖ community-samples: https://github.com/vmware/pyvmomi-community-samples/
❖ ~30 samples and growing!! Contribute today!!
❖ Help us: https://github.com/vmware/pyvmomi-community-
samples/labels/help%20wanted
❖ My Blog: http://www.errr-online.com/
❖ VMWare developer resources: http://developercenter.vmware.com/sdks
❖ Shawn Hartsock: http://hartsock.blogspot.com/
❖ VMWare employee currently maintaing pyVmomi
❖ youtube: https://www.youtube.com/playlist?list=PLO7-
YtwexdVIttJejhsBjo0TZPq0BSFfw
Getting Help
❖ pyVmomi: https://github.com/vmware/pyvmomi
❖ IRC: Freenode —> #pyvmomi
❖ Mailing List: http://pyvmomi.2338814.n4.nabble.com/
❖ StackOver Flow: tag post with pyvmomi

More Related Content

What's hot

Integração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelIntegração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache Camel
Pedro Oliveira
 
ProxySQL at Scale on AWS.pdf
ProxySQL at Scale on AWS.pdfProxySQL at Scale on AWS.pdf
ProxySQL at Scale on AWS.pdf
Aleksandr Kuzminsky
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCH
Chien Cheng Wu
 
Nginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptxNginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptx
wonyong hwang
 
Wright3 curriculum guide
Wright3 curriculum guideWright3 curriculum guide
Wright3 curriculum guide
HillcrestPIA
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introduction
Evan Lin
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
Yevgeniy Brikman
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
Araf Karsh Hamid
 
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage ServiceQuick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Cloudian
 
AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기
JinyoungKim52579
 
Design Patterns for Developers - Technical 201
Design Patterns for Developers - Technical 201Design Patterns for Developers - Technical 201
Design Patterns for Developers - Technical 201
Amazon Web Services
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
An Nguyen
 
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya RaghunathanCamunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
camunda services GmbH
 
Jenkins vs GitLab CI
Jenkins vs GitLab CIJenkins vs GitLab CI
Jenkins vs GitLab CI
CEE-SEC(R)
 
Terraform modules and (some of) best practices
Terraform modules and (some of) best practicesTerraform modules and (some of) best practices
Terraform modules and (some of) best practices
Anton Babenko
 
Terraform
TerraformTerraform
Terraform
Phil Wilkins
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
Shahzad Masud
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUG
Alan Renouf
 
Introduction to Nginx
Introduction to NginxIntroduction to Nginx
Introduction to Nginx
Knoldus Inc.
 
Terraform day1
Terraform day1Terraform day1
Terraform day1
Gourav Varma
 

What's hot (20)

Integração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelIntegração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache Camel
 
ProxySQL at Scale on AWS.pdf
ProxySQL at Scale on AWS.pdfProxySQL at Scale on AWS.pdf
ProxySQL at Scale on AWS.pdf
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCH
 
Nginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptxNginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptx
 
Wright3 curriculum guide
Wright3 curriculum guideWright3 curriculum guide
Wright3 curriculum guide
 
Docker swarm introduction
Docker swarm introductionDocker swarm introduction
Docker swarm introduction
 
Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage ServiceQuick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
 
AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기AWS App Runner를 활용한 컨테이너 서버리스 활용기
AWS App Runner를 활용한 컨테이너 서버리스 활용기
 
Design Patterns for Developers - Technical 201
Design Patterns for Developers - Technical 201Design Patterns for Developers - Technical 201
Design Patterns for Developers - Technical 201
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya RaghunathanCamunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
 
Jenkins vs GitLab CI
Jenkins vs GitLab CIJenkins vs GitLab CI
Jenkins vs GitLab CI
 
Terraform modules and (some of) best practices
Terraform modules and (some of) best practicesTerraform modules and (some of) best practices
Terraform modules and (some of) best practices
 
Terraform
TerraformTerraform
Terraform
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
VMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUGVMware Automation, PowerCLI presented at the Northern California PSUG
VMware Automation, PowerCLI presented at the Northern California PSUG
 
Introduction to Nginx
Introduction to NginxIntroduction to Nginx
Introduction to Nginx
 
Terraform day1
Terraform day1Terraform day1
Terraform day1
 

Viewers also liked

Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of Python
Yurii Vasylenko
 
vSphere APIs for performance monitoring
vSphere APIs for performance monitoringvSphere APIs for performance monitoring
vSphere APIs for performance monitoring
Alan Renouf
 
Exploring VMware APIs by Preetham Gopalaswamy
Exploring VMware APIs by Preetham GopalaswamyExploring VMware APIs by Preetham Gopalaswamy
Exploring VMware APIs by Preetham Gopalaswamy
Alan Renouf
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
Mo Rawi
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
Clément OUDOT
 
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data AnalysisApache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
DataWorks Summit/Hadoop Summit
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
prajods
 
Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...
Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...
Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...
Chris Fregly
 
Explorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinExplorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelin
Bruno Bonnin
 
Pyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventoryPyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventory
Kentaro Kawano
 
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
BarracudaJapan
 
How to Adopt Infrastructure as Code
How to Adopt Infrastructure as CodeHow to Adopt Infrastructure as Code
How to Adopt Infrastructure as Code
NGINX, Inc.
 
Apache Zeppelin Helium and Beyond
Apache Zeppelin Helium and BeyondApache Zeppelin Helium and Beyond
Apache Zeppelin Helium and Beyond
DataWorks Summit/Hadoop Summit
 
Building an EmPyre with Python
Building an EmPyre with PythonBuilding an EmPyre with Python
Building an EmPyre with Python
Will Schroeder
 
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
OpenTOSCA
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
The new Netflix API
The new Netflix APIThe new Netflix API
The new Netflix API
Katharina Probst
 

Viewers also liked (17)

Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of Python
 
vSphere APIs for performance monitoring
vSphere APIs for performance monitoringvSphere APIs for performance monitoring
vSphere APIs for performance monitoring
 
Exploring VMware APIs by Preetham Gopalaswamy
Exploring VMware APIs by Preetham GopalaswamyExploring VMware APIs by Preetham Gopalaswamy
Exploring VMware APIs by Preetham Gopalaswamy
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
 
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data AnalysisApache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
 
Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...
Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...
Advanced Apache Spark Meetup Data Sources API Cassandra Spark Connector Spark...
 
Explorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinExplorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelin
 
Pyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventoryPyvmomiとansibleのdynamic inventory
Pyvmomiとansibleのdynamic inventory
 
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
Barracuda Email Security Gateway(旧 Barracuda Spam Firewall PLUS) 製品のご紹介
 
How to Adopt Infrastructure as Code
How to Adopt Infrastructure as CodeHow to Adopt Infrastructure as Code
How to Adopt Infrastructure as Code
 
Apache Zeppelin Helium and Beyond
Apache Zeppelin Helium and BeyondApache Zeppelin Helium and Beyond
Apache Zeppelin Helium and Beyond
 
Building an EmPyre with Python
Building an EmPyre with PythonBuilding an EmPyre with Python
Building an EmPyre with Python
 
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
The new Netflix API
The new Netflix APIThe new Netflix API
The new Netflix API
 

Similar to Introduction to vSphere APIs Using pyVmomi

Vagrant-Overview
Vagrant-OverviewVagrant-Overview
Vagrant-Overview
Crifkin
 
Small Python Tools for Software Release Engineering
Small Python Tools for Software Release EngineeringSmall Python Tools for Software Release Engineering
Small Python Tools for Software Release Engineering
pycontw
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless Apps
Erica Windisch
 
Symfony finally swiped right on envvars
Symfony finally swiped right on envvarsSymfony finally swiped right on envvars
Symfony finally swiped right on envvars
Sam Marley-Jarrett
 
Lessons On Hyper V
Lessons On Hyper VLessons On Hyper V
Lessons On Hyper V
Aidan Finn
 
London Hug 20/6 - Vault production
London Hug 20/6 - Vault productionLondon Hug 20/6 - Vault production
London Hug 20/6 - Vault production
London HashiCorp User Group
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
Puppet
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
Docker, Inc.
 
Puppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionPuppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG edition
Joshua Thijssen
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
John Rofrano
 
Top Troubleshooting Tips and Techniques for Citrix XenServer Deployments
Top Troubleshooting Tips and Techniques for Citrix XenServer DeploymentsTop Troubleshooting Tips and Techniques for Citrix XenServer Deployments
Top Troubleshooting Tips and Techniques for Citrix XenServer Deployments
David McGeough
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
Brian Hogan
 
Containerizing your Security Operations Center
Containerizing your Security Operations CenterContainerizing your Security Operations Center
Containerizing your Security Operations Center
Jimmy Mesta
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
Positive Hack Days
 
[Mas 500] Various Topics
[Mas 500] Various Topics[Mas 500] Various Topics
[Mas 500] Various Topics
rahulbot
 
Modern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSDModern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSD
Sean Chittenden
 
How to implement PassKeys in your application
How to implement PassKeys in your applicationHow to implement PassKeys in your application
How to implement PassKeys in your application
Marian Marinov
 
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
Felipe Prado
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Pablo Godel
 

Similar to Introduction to vSphere APIs Using pyVmomi (20)

Vagrant-Overview
Vagrant-OverviewVagrant-Overview
Vagrant-Overview
 
Small Python Tools for Software Release Engineering
Small Python Tools for Software Release EngineeringSmall Python Tools for Software Release Engineering
Small Python Tools for Software Release Engineering
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless Apps
 
Symfony finally swiped right on envvars
Symfony finally swiped right on envvarsSymfony finally swiped right on envvars
Symfony finally swiped right on envvars
 
Lessons On Hyper V
Lessons On Hyper VLessons On Hyper V
Lessons On Hyper V
 
London Hug 20/6 - Vault production
London Hug 20/6 - Vault productionLondon Hug 20/6 - Vault production
London Hug 20/6 - Vault production
 
Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)Getting started with puppet and vagrant (1)
Getting started with puppet and vagrant (1)
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
Puppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG editionPuppet for dummies - PHPBenelux UG edition
Puppet for dummies - PHPBenelux UG edition
 
Making Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and DockerMaking Developers Productive with Vagrant, VirtualBox, and Docker
Making Developers Productive with Vagrant, VirtualBox, and Docker
 
Top Troubleshooting Tips and Techniques for Citrix XenServer Deployments
Top Troubleshooting Tips and Techniques for Citrix XenServer DeploymentsTop Troubleshooting Tips and Techniques for Citrix XenServer Deployments
Top Troubleshooting Tips and Techniques for Citrix XenServer Deployments
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
 
Containerizing your Security Operations Center
Containerizing your Security Operations CenterContainerizing your Security Operations Center
Containerizing your Security Operations Center
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
 
[Mas 500] Various Topics
[Mas 500] Various Topics[Mas 500] Various Topics
[Mas 500] Various Topics
 
Modern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSDModern tooling to assist with developing applications on FreeBSD
Modern tooling to assist with developing applications on FreeBSD
 
How to implement PassKeys in your application
How to implement PassKeys in your applicationHow to implement PassKeys in your application
How to implement PassKeys in your application
 
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 

Recently uploaded

ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
Envertis Software Solutions
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 

Recently uploaded (20)

ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
What’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete RoadmapWhat’s New in Odoo 17 – A Complete Roadmap
What’s New in Odoo 17 – A Complete Roadmap
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 

Introduction to vSphere APIs Using pyVmomi

  • 1. Introduction to vSphere APIs Using pyVmomi pyVmomi Michael Rice @VirtDevNinja http://errr-online.com/ https://github.com/michaelrice
  • 2. About Michael Rice ❖ Software Developer @ Rackspace ❖ Trust me, I have a Linux beard. ❖ http://linuxbeard.com/image/114385301362 ❖ RPM Package Maintainer for pyVmomi ❖ Leading community contributor to pyVmomi & community- samples ❖ Creator of YAVIJAVA the VIJAVA fork ❖ StackOverflow pyVmomi & VIJAVA
  • 3.
  • 4. About pyVmomi ❖ Open Source python SDK for vSphere ❖ Released Dec 2013 ❖ License: Apache 2.0 ❖ Python VMWare Managed Object Management Interface ❖ Other Vmomi projects include GoVmomi & rbVmomi ❖ Wraps vSphere WebServices SOAP API very tightly ❖ Its been around a long time!! Look on your 4.0 HostSystems! ❖ Multiple versions. Whats on HostSystems != whats on GitHub
  • 5. Why Use Python & pyVmomi ❖ Python is easy for beginners to learn ❖ vSphere 6.0 VMWare released VMWare vCloud Suite SDK for Python ❖ http://developercenter.vmware.com/web/sdk/60/vcloudsuite-python ❖ Python is in the top 10 languages you should be learning RIGHT NOW! ❖ If you work in a mixed environment of admins running Windows, Mac and Linux then the same Python code works for everyone! (mostly) ❖ Integrate with ConfigManagement like Ansible & SaltStack ❖ pySphere and pSphere are much slower because they use SUDS ❖ pyVmomi is FAST! 360 milliseconds to inventory 576 VMs ❖ Do tasks you can normally only do from the UI — Reset Alarms from Red to Green
  • 6. Setting Up a Development Environment ❖ Setup a Development vCenter using Simulator ❖ Install Python and VirtualEnv on our desktop ❖ Install Python IDE — pyCharm/IntelliJ, pyDev, etc.. ❖ No Intelli-Sense due to dynamic nature of library ❖ Install pyVmomi
  • 7. Installing vCenter SA ❖ Download vCenter Server Appliance 5.5 ova ❖ 6.0 has a bug and Simulator DOES NOT WORK! ❖ Deploy the OVA to Fusion or Workstation ❖ Use simple shell script to configure VCSA Simulator ❖ https://gist.github.com/michaelrice/
  • 8. #!/bin/bash # See the original work from William Lam at http://www.virtuallyghetto.com/ echo "Accepting EULA ..." /usr/sbin/vpxd_servicecfg eula accept echo "Setting default ports ..." /usr/sbin/vpxd_servicecfg 'ports' 'defaults' echo "Configuring Embedded DB ..." /usr/sbin/vpxd_servicecfg 'db' 'write' 'embedded' echo "Configuring SSO..." /usr/sbin/vpxd_servicecfg 'sso' 'write' 'embedded' 'password' echo "Starting VCSIM ..." /usr/bin/vmware-vcsim-start default echo "Starting VCSA ..." /usr/sbin/vpxd_servicecfg service start
  • 9.
  • 10. Install Python & VirtualEnv ❖ Please See one of the 1000’s of guides online ❖ I use 2.7 but pyVmomi supports the following versions of Python: 2.6, 2.7, 3.3, 3.4 ❖ On Mac consider brew install of python
  • 11. Install an IDE ❖ pyCharm/IntelliJ ❖ pyDev ❖ Other
  • 12. Install pyVmomi ❖ Universal/Recommended ❖ pip install -U pyvmomi ❖ RHEL/Fedora/CentOS ❖ yum install pyvmomi ❖ FreeBSD ❖ pkg install pyvmomi
  • 14. vSphere Object Model ❖ Managed Objects ❖ HostSystem, VirtualMachine, Folder, Network, etc.. ❖ Managed Object Reference ❖ Used in MO to point to other associated managed objects ❖ Data Objects ❖ Information about a Managed Object. Properties of the MO
  • 16.
  • 17.
  • 18. Basic Usage with Actual Code!! >>> from pyVim.connect import SmartConnect >>> si = SmartConnect(host="vcsa", user="admin", pwd="password") >>> host = si.content.searchIndex.FindByDnsName(None, “DC0_C0_H0”, False) >>> print host.name DC0_C0_H0 >>> print host.summary.hardware.model ProLiant DL380 G5 3 Lines of Code to get a HostSystem!
  • 19. List All HostSystems in vCenter service_instance = SmartConnect(User, Password, HostName) Hosts = GetAllHosts(service_instance) for host in Hosts: PrintHostInfo(host) def PrintHostInfo(host): # print various property info for a given host def GetAllHosts(service_instance): # do work needed to get host related info here…
  • 20. Solving Business Problems ❖ SAN Team has a “Non Impacting No Downtime Maintenance” to do on the SAN Switches ❖ All customers have redundant connections ❖ Maint will require them to bring down A chan restore it then bring down B chan and restore it ❖ Such a low risk VirtSupport not informed only customer is notified. ❖ vCenter Alarms monitor the SAN connections ❖ They see redundancy lost & trigger SNMP trap. ❖ Ticket is generated for each device!! ❖ 30 mins later its 3am & 100’s of tickets have hit the queue fire drill begins!
  • 21. Solving Business Problems ❖ Already had SOP in place for how to manually work the Redundancy lost tickets ❖ Use python to connect to various APIs in company to gather data from ticket to automate the SOP ❖ Use pyVmomi to connect vCenter to check for actual problem. ❖ Rescan HBA etc.. ❖ Use pyVmomi to ack alarm & reset from red to green ❖ Use python to hit ticket API to close ticket if fixed or flag as real issue for VirtSupport to go look at ❖ While this code was in production it worked 1000’s of tickets saving Rackers 100’s of hours in NVA work.
  • 22.
  • 23. Valuable Tools ❖ Onyx ❖ https://labs.vmware.com/flings/onyx ❖ Latest Version: 2.2.5 ❖ Capture all traffic happening between client and server ❖ DoubleCloud Proxy ❖ Created by: Steve Jin ❖ http://www.doublecloud.org/doublecloud-proxy/ ❖ Capture all traffic happening between client and server
  • 24. Onyx & DoubleCloud Proxy ❖ Start the app and point them at your target vSphere server ❖ Point your script or VIClient etc.. at proxy ❖ Profit
  • 25. Things Ive Learned ❖ There are several “hidden” folders ❖ These can all be seen using the MOB ❖ HostSystems do not always have a unique UUID ❖ On Dell if Service Tag not set in BIOS it uses a generic default UUID ❖ When searching for them use the DNS Name or InventoryPath + name ❖ InventoryPath can be tricky. Use MOB for help ❖ Using the UUID will return the first one it finds ❖ http://kb.vmware.com/kb/1006250
  • 26. Things Ive Learned ❖ VirtualMachine BIOS UUID is shared by VMS in a vApp ❖ The only thing unique for use in searching for a VM is the instance UUID so use it or the InventoryPath + name ❖ Property Collectors are complicated but worth the extra work ❖ You CAN NOT SCALE with out them!!
  • 27. Must Have Links ❖ pyVmomi docs: https://github.com/vmware/pyvmomi/tree/master/docs ❖ community-samples: https://github.com/vmware/pyvmomi-community-samples/ ❖ ~30 samples and growing!! Contribute today!! ❖ Help us: https://github.com/vmware/pyvmomi-community- samples/labels/help%20wanted ❖ My Blog: http://www.errr-online.com/ ❖ VMWare developer resources: http://developercenter.vmware.com/sdks ❖ Shawn Hartsock: http://hartsock.blogspot.com/ ❖ VMWare employee currently maintaing pyVmomi ❖ youtube: https://www.youtube.com/playlist?list=PLO7- YtwexdVIttJejhsBjo0TZPq0BSFfw
  • 28. Getting Help ❖ pyVmomi: https://github.com/vmware/pyvmomi ❖ IRC: Freenode —> #pyvmomi ❖ Mailing List: http://pyvmomi.2338814.n4.nabble.com/ ❖ StackOver Flow: tag post with pyvmomi