Brain Droppings

From the mind of Chris Weibel


My New Favorite CLI for vSphere: govc

10 Jul 2018

map

Photo by Steve Smith on Unsplash

Every once in a while I run across an amazing tool which should be shared with others, we all deserve nice things.

For the last few years I’ve been using the AWS CLI to reboot vms, find ip addresses used within a vpc and looking up vm instance types. I recently had to switch to vSphere and wanted a similar experience.

VMWare has created a CLI for interacting with vSphere called govc. I’ve enjoyed using it and hope you will too!

Why I like govc

  • The tool is written in go and is compiled for Linux, FreeBSD, OSX & Windows. Download the most recent releases here.
  • It is very simple to use. Download, set a couple environment variables and start poking around:
export GOVC_URL="https://lab1.tonyandbruce.com"
export GOVC_USERNAME='bruce'
export GOVC_PASSWORD='tony'

The GOVC_URL is the vCenter url, if you get an x509 certificate error also add export GOVC_INSECURE=true

Now you can quickly list the datacenters:

govc ls

This will output the list of vCenter clusters similar to:

/CF1
/CF2
/Kubo

You list the vms for a datacenter by executing:

govc ls /CF1/vm/*

/CF1/vm/jumpbox1
/CF1/vm/jumpbox2
/CF1/vm/bosh-pr
/CF1/vm/shield-pr-lab

Helpful Example

Once connected you can use the CLI to upload large ISOs which may otherwise timeout during their upload. For instance the command below will upload an ubuntu ISO from your local filesystem to a vSphere datastore called DataStore1:

govc datastore.upload -dc=CF1 -ds DataStore1 /
./ubuntu-18.04-live-server-amd64.iso ubuntu-18.04-live-server-amd64.iso

Helpful hint: if you do uploads from a vm created on the vSphere cluster they can be much faster than attempting from your laptop.

There are a ton of other examples with the existing help documented here: https://github.com/vmware/govmomi/blob/master/govc/USAGE.md which gives examples for:

  • Listing vm information, including ip and CPU
  • Creating/updating/deleting vms, clusters, datastores
  • Host switch, storage, power settings
  • Copying/moving/deleting files in datastores
  • Much more… Go look and enjoy