The following instructions guide you through installing and configuring a reference implementation of the Puppet plug-in using Puppet Enterprise 2017.2 and vRA 7.3. This implementation is designed to create a development environment with vRO, vRA, and Puppet running as quickly as possible in order to help you learn how these tools work together.

The reference implementation isn't designed with production deployments in mind. Once you're familiar with how the plug-in works, you can install it into your production vRO/vRA infrastructure and build compatible workflows and blueprints.

The plug-in works with many implementations of Puppet Enterprise, vRO, and vRA. While you can use these instructions to set up this plugin with other versions of Puppet Enterprise and vRO/vRA, we recommend using this reference implementation the first time through.

Note: If you're already experienced with Puppet, vRO, vRA, and the Puppet plug-in, see Managing and provisioning infrastructure with vRA and Puppet for a quick reference of properties and usage.

Prerequisites

The Puppet plug-in 3.0 is compatible with the following configurations.

You can use the Puppet plug-in 3.0 with vRA 7.3 Enterprise edition, which includes an advanced GUI experience with drag-and-drop Puppetcomponents on blueprints. To do so, you must have:

  • A Puppet master server running Puppet Enterprise 2016.4 or newer
  • vRealize Automation Enterprise 7.3
  • Either internal/external vRO 7.x appliance (vRA includes an internal vRO appliance)

You can also use the plug-in with any vRA version from 6 to 7.3. To do so, you must have:

  • A Puppet master server running Puppet Enterprise 2016.4 or newer
  • vRealize Orchestrator 6 or newer (vRA includes an internal vRO appliance)
  • vRealize Automation 6 or newer
  • vRealize Automation Enterprise 7.3 or newer required for GUI integration

Agent nodes being managed by Puppet must run an operating system supported by the Puppet agent.

Note: The 32-bit version of Microsoft Windows Puppet agent is not compatible with vRO plug-in management. You must use the 64-bit (x64) agent.

Removing previous versions of the Puppet plug-in

The plug-in does not currently support upgrades from the previous vRO Puppet plug-in versions.

If you're using any previous version of the plug-in, you must completely remove it before installing. For best results, delete all puppet elements from the vRO GUI client first and then copy this script from the vRO starter content to the appliance and execute it.

Install and configure Puppet Enterprise

For this reference implementation of the vRO plug-in, you must use a new, clean installation of Puppet Enterprise with Code Manager disabled. After running the setup script, you can opt to enable Code Manager.

  1. Review the Puppet Enterprise hardware and operating system requirements.
  2. Install Puppet Enterprise on a VM or server. This will serve as the Puppet master server, and must be accessible over the network from the vRO appliance or server. An easy way to install PE is to run the installer in text mode. Then there is only one question to answer: the password for the PE Console GUI.
  3. Add the Puppet plug-in starter pack content by following the instructions in the README.

    The starter content repository provides reference implementations of Puppet roles and profiles for Linux and Windows web server stacks, utility scripts to prepare the master server for vRO, and a templated autosigning script. Once you understand how Puppet, vRO, and vRA work together, you can use these reference implementations to help build your own Puppetized vRO/vRA implementations.

    If you’re already experienced with Puppet, vRO, and vRA, you can replace this reference implementation with your own code or control repository.

  4. Ensure that the Puppet master has a valid DNS hostname and NTP configured. If you don’t have or use a DNS server, provide a valid hostname for the server’s IP address in the master server’s hosts file (typically /etc/hosts).
    Note:

    Make sure that a hostname is properly configured on the machines you’re installing PE on. All nodes must know their own hostnames. This can be done by properly configuring reverse DNS on your local DNS server, or by setting the hostname explicitly. Setting the hostname usually involves the hostname command and one or more configuration files, while the exact method varies by platform.

    Additionally, all nodes must be able to reach each other by name. This can be done with a local DNS server, or by editing the hosts file on each node (such as /etc/hosts on a Linux node) to point to the proper IP addresses.

  5. Initiate a Puppet run on the master server by running sudo puppet agent -t

    The vRO starter content creates a PE RBAC user and Linux user account on the Puppet master (both are named vro-plugin-user, default password puppetlabs) and adds rules to the sudoers file allowing it to run commands with elevated privileges as required by the plug-in.

    It also adds the following settings to the master’s sshd_config:

    PermitRootLogin yes
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
  6. (Already done in starter content) To display role class descriptions in the vRealize Automation web GUI, we install puppet-strings, a Puppet documentation extraction command built on YARD
    puppet resource package puppet-strings provider=puppet_gem

    Role class descriptions come from the @summary tag in your Puppet code, which puppet-strings can digest. The vRO starter content role and profile classes already have this built-in. To do this with your own role classes, add a @summary line with a 140 characters or less description. For example:

    # This role installs a MySQL databse and sample data
    #
    # @summary MySQL database server on Linux with sample data
    class role::linux_mysql_database {
      include profile::linux_baseline
      include profile::mysql
      include profile::sample_data
    }
  7. If you do not allow a sudo-capable user to run commands for vRO — for instance, if you remove the vro-plugin-user account or revoke its sudoers privileges:
    1. Provide vRO with remote access to a user account on the master with those capabilities, or to the master’s root user, which is insecure; and
    2. Make a user with the same username in RBAC with this permission: “Nodes > View node data from PuppetDB

Install and configure the Puppet Plug-in

For the reference implementation, we recommend using the vRO built into the vRA appliance.

If you choose to install your own vRO, refer to the vRO documentation. If you previously installed version 1.0 or 2.0 of the plug-in, you must completely remove it before installing version 3.0.

Install the Puppet plug-in

Download and install the Puppet plug-in.

  1. Download the Puppet plug-in’s .vmoapp package from the VMware Solution Exchange.
  2. Login to the vRO server’s control center at https://<VRO-SERVER-IP-ADDRESS>:8283/vco-controlcenter
  3. Click the Plugins tab.
  4. Click Install plug-in.
  5. Install the Puppet plug-in’s .vmoapp package downloaded from the VMware Solution Exchange. Read and accept the EULA, then click Install.
  6. After the installation confirmation message appears, click Startup Options in the message reminding you to restart the Orchestrator server. In some versions of vRO this message may not appear, but you still must restart the Orchestrator server.
  7. On the Startup Options page, click Restart under the Current Status heading.
Back to top
The page rank or the 1 our of 5 rating a user has given the page.
The email address of the user submitting feedback.
The URL of the page being ranked/rated.