Editor's Note: This blog post was originally published on the World Wide Technology blog in a slightly different form, and is republished with the kind permission of author Curt Stalhood.
Modern data centers are increasingly utilizing automated configuration management tools such as Puppet Enterprise to provision compute resources, storage, network, security, application and middleware across on-premise and/or cloud data centers. Puppet has partnered with VMware to use Puppet modules as building blocks for vRealize Automation application blueprints. This enables deployment of multi-tier applications using Puppet modules. The integration of Puppet with vRealize Automation provides data center infrastructure teams with a powerful and agile tool to manage and run their data center resources.
Now that VMware has officially released VMware vRealize Automation (vRA) 7.3, it’s time to take a look at the new features. The very first one I want to discuss is the ability to integrate Puppet directly into a design blueprint without having to create custom properties and property groups (build profiles in vCAC 6). Instead, there’s a new selection called configuration management for a machine blueprint, and Puppet is the first vendor for this new feature.
A little brief history for anyone not running vRA 7.3, or if you haven’t read through my other blogs on integrating Puppet with vRA, below are a couple links on how to use the vRA guest agent and software components for integrating Puppet:
- A Guide to Puppet Integration with VMware vRealize Automation (vRA 6.x)
- Building Puppet Integration in VMware vRealize Automation 7.1 and 7.2
So let’s get started and integrate vRA 7.3 with Puppet!
- Puppet Enterprise 2016.4.2 or higher
- Puppet Enterprise Plugin 3.0
- Puppet vRA Starter-Content Pack (optional, but recommended)
- VMware vRealize Automation 7.3 Enterprise
- VMware vRealize Orchestrator 7.3
- An existing Windows or Linux VM template running the vRA Guest Agent
NOTE: If you have a previous version of the Puppet plugin installed on vRO, you must manually uninstall it before continuing. Version 3.0 does not perform an upgrade.
Task 1: Set up autosigning and descriptions
- Log in to the Puppet master. Click Nodes > Classification and then click Autosign and vRO Plugin User and ssdh config that was set up by the vRO Starter-Content Pack.
- Click the Classes under the
autosign_exampleclass, add the parameter named
puppet_autosign_shared_secretand change the value. Note: This passcode is stored in the autosign.rb file, which must match the parameter entry.
- Under the
vro_plugin_userclass, add the parameters for the
vro_plugin_user. Make sure that the credentials specified match the account created on the Puppet master. The default created by the content pack is
- Click Commit Changes to complete the process.
- SSH to the Puppet master and log in as root.
- Execute the following two commands to enable the @Summary portion of the roles to display a description next to the role during the vRA catalog role selection:
puppet resource package yard provider=puppet_gem puppet resource package puppet-strings provider=puppet_gem
Task 2: Install the vRO plugin and configure
The steps here are pretty straightforward. All you need to do is install the plugin and then configure the endpoint connection between vRA and Puppet via vRealize Orchestrator (vRO).
- Browse to the vRO control center and install the plugin.
- Restart the vRO service.
- From the vRA web interface for the tenant, log in with a user account that has rights to ASD. Click Administration > vRO Configuration > Endpoints. Click New and then walk through the wizard to add the Puppet master.
- Make sure sudo is set to Yes, and the
vro-plugin-useraccount is specified.
- Check the inventory tab on vRO to verify that the host is added correctly.
Task 3: Create the vRA blueprint
- From the Design tab, click on new and complete the necessary details.
- Under categories, click Configuration Management.
- Drag the Puppet configuration to the VM.
- The Puppet configuration appears. Click the Server tab and complete the information in the boxes for the master and environment. Here you can also choose show the options in the request form by clicking Set in request form instead. Make sure to set the Shared Secret field to what was entered in the classification previously.
- Click the Managed Node tab and fill in the information.
- Review the blueprint and click Finish.
- Click Publish.
- Entitle your users to access the blueprint and then go request one!
- Once completed, verify the role(s) processed correctly on the new deployment.
- Check the Puppet master to see the node is in the role.
Curt Stalhood is a principal solutions architect at World Wide Technology, focused on cloud management and automation.
- Download the Puppet plugin for vRealize.
- Learn more about Puppet's integration into the vRA GUI.
- Read the release notes for vRealize Automation 7.3.
- Discover more about how Puppet works with VMware.