Skip to content

Instantly share code, notes, and snippets.

@jjasghar
Forked from swalberg/vmware_chef.md
Created September 13, 2016 22:26
Show Gist options
  • Save jjasghar/3400c6231bef628c567321dbee654c6f to your computer and use it in GitHub Desktop.
Save jjasghar/3400c6231bef628c567321dbee654c6f to your computer and use it in GitHub Desktop.
VMware and Chef Tools

VMware and Chef tools

Chef and VMware are a natural pairing and there are several tools available to enhance the integration.

Knife is a command-line tool that provides an interface between a local chef-repo and the Chef server and allows you to manipulate objects on the Chef server. Knife plugin allows your computer to talk to a 3rd party systems like vSphere or vRA. A plugin can create a VM in vSphere and then bootstrap it with Chef, for example, or it can expose your vRa catalog to your workstation so you don't need to use a GUI.

The following are the main interfaces with VMware and Chef our "knife" plugins.

chef-provisioning is a collection of resources that enable the creation of machines and machine infrastructures using the chef-client. It has a plugin model that allows bootstrap operations to be done against any infrastructure, such as VirtualBox, DigitalOcean, Amazon EC2, vSphere, vRA and more.

The chef-provisioning drivers are:

Chef-provisioning is more concerned with groups of servers, such as "my application has two web servers, five application servers, and a database cluster, and here are the instructions to build them". On the other hand, knife operates on the individual server level, such as to edit a node's runlist, upload a cookbook to the server, or clone a single VM.

Finally, we have test-kitchen drivers:

What is test-kitchen? Use Kitchen to automatically test cookbook data across any combination of platforms, including vSphere and vRA, and test suites. Here you might automatically spin up a VM on vSphere, apply your development cookbook, test the output, then destroy the VM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment