VMware vRA 7.0+ and Chef

We’re happy to announce that Chef can now drive VMware’s vRA 7.0+ automation suite. We’ve released 2.0.0 versions of both knife-vrealize and kitchen-vra along with a 1.0.0 version of chef-provisioning-vra. These releases are the result of collaborative work between Chef Software Inc, the Chef community, and VMware experts to make our standard tooling compatible with VMware vRealize Automation 7.0+.

Chef Development with VMware

Chef has prescriptive workflow patterns for developing and managing all change from local development through deployment to production. Regardless of your target platform, Chef believes that having a standard workflow for managing all change in your organization is key to success. You should model and test all changes locally. If automated tests verify that change is successful, then you should commit it to version control, submit it for review, and deploy to production via a build pipeline (e.g. such as is available using the workflow features of Chef Automate).

For users of VMware vSphere, this workflow is supported using the knife-vsphere, kitchen-vsphere, and chef-provisioning-vsphere plugins. However, many users commonly have an additional layer of abstraction sitting atop vSphere with the vRealize Automation suite. vRA provides a number of constructs such as build catalogs, reservation policies, and build workflows that improve management of large VMware virtualized infrastructures.

For users of vRA, adhering to the prescribed Chef development workflow has been difficult until now. VMware provides alternatives to accomplishing several steps necessary for deploying changes to production, but the implementation often misaligns with the programmatic Infrastructure as Code approach recommended by Chef. The release of these plugins now makes it possible for vRA users to adopt the same consistent programmatic deployment workflow in use on other platforms.

Local Development

You should manage alterations to Chef code with test-kitchen. In many VMware environments, users may be using a test-kitchen plugin such as kitchen-vagrant to spin up test machines locally on their workstation instead of directly on their VMware infrastructure. While that’s beneficial for speed and performance, that’s not always a sufficient way to test proposed changes. Users of vRA now have the kitchen-vra plugin available so they can provision test instances directly into vRealize Automation.

Provisioning

Once proposed changes are properly tested, reviewed, and approved, they must then be deployed to production. The deployment to production should, like everything else in the standard Chef workflow, be programmatic and managed automatically. Sometimes, deployments to production may require provisioning new vRA machines. In order to automatically provision machines into vRA, users now have two available options via the knife-vrealize and chef-provisioning-vra plugins.

Try them for yourself

These three plugins now allow vRA users to adopt the same workflow Chef recommends for other target platforms. vRA users are now able to utilize all of the functions included with Chef Automate. These plugins also open opportunities for traditional infrastructure and development teams to find common ground by adopting DevOps practices together.

Releasing these plugins requires collaboration and we’re extremely proud of this joint effort. It’s a big milestone for our community. Please give these new integrations a shot and let us know how it goes for you. Providing feedback via Github issues or by joining us on the #chef channel in VMware{Code} would be greatly appreciated.

JJ Asghar

JJ works with Strategic Technical Alliances at Chef Software making integrations work with Chef, Habitat, and InSpec. He works on everything from Azure, VMware, OpenStack, and Cisco with everything in between. He also heads up the Chef Partner Cookbook Program to make sure customers of Chef and vendors get the highest quality certified cookbooks. He grew up and currently lives in Austin, Texas.

George Miranda

Former Chef Employee