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.