Background

You're currently using Puppet for launching and configuring servers and want to know what kind of support RightScale offers for Puppet.

Answer

RightScale has released a Puppet Client ServerTemplate that you can use to connect your existing puppetmaster. See the documentation here.

If you need to create a Puppet Master ServerTemplate, you can follow the instructions below to get started.

Setting up Puppet with RightScale

Introduction

These guidelines are intended for users who are familiar with Puppet and the RightScale Cloud Management Platform. The following instructions assume that you're going to use a ServerTemplate and RightScripts to launch and configure your Puppet Servers but you can also manually install Puppet using SSH. The steps here also assume you're launching two Servers in EC2: puppetmaster and puppet client. In this example, there's only one puppet client, but you may have several puppet clients in your setup. You can also launch a single server that act as both the puppetmaster and puppet client, but that scenario is not covered in this document. Typically, the puppet client has a separate primary function (e.g. app server, front end, etc.) but in this example we are only walking through the setup of the puppetmaster and a client.

The guidelines reference existing Puppet technical documentation found here: http://docs.puppetlabs.com/

Steps

  1. Create a new Deployment for your Puppet setup.

  2. Create a new ServerTemplate and select a desired MCI (for example, RightImage_CentOS_5.4_i386_v5.6 - 11H1.b1). Although we've tested the Puppet setup with the specified CentOS 5.4 RightImage, you may be able to use another OS distribution. Note: The required Ruby prerequisites will be installed if you use RightImage\_CentOS\_5.4\_i386\_v5.6 - 11H1.b1 which installs Ruby v1.8.5.

  3. (Optional) Create an Elastic IP (in the desired AWS region) that you will later associate with the puppetmaster server.

  4. Configure DNS settings. The next step is to configure a DNS record that points to the puppetmaster server so that the puppetclient server(s) can connect to the puppetmaster. For alternatives, see http://docs.puppetlabs.com/guides/co...#configure-dns.

    • If you're using DNS Made Easy, you can create a DNS A Record that points to the puppetmaster server. If you chose to reserve an Elastic IP (EIP), you can point the A Record to the EIP. If you're not using an EIP, you must update your DNS record later with the IP address that will be assigned to the puppetmaster instance at launch time. See Domain Setup with DNSMadeEasy.
  5. Create an EC2 Security Group with the following port permissions:

    • Open port 8140 for both UDP and TCP using the 0.0.0.0/0 CIDR notation to allow 'any' IPs
  6. Create and add the following custom RightScripts as Boot Scripts for the new ServerTemplate.

  7. Create and add the following custom RightScript as an Operational Script of the new ServerTemplate.

    • Connect with puppetmaster - This script will be executed on a Server that will become a puppetclient. Create a new RightScript that will connect to the puppetmaster by placing the puppetmaster's IP address or FQDN in /etc/sysconfig/puppet.You can either retrieve a preconfigured file for /etc/sysconfig/puppet from an external source, or edit the file directly as part of your script.
  8. Add a Server to the Deployment using the new Puppet ServerTemplate. Call it puppetmaster and be sure to select the EC2 Security Group that you created above and the Elastic IP if you're using one.

  9. Launch the puppetmaster Server and wait for it to become operational.

  10. (Optional) Test your Puppet installation. http://docs.puppetlabs.com/guides/co...g-installation

  11. Add another Server to the Deployment using the new Puppet ServerTemplate, except this time name the server puppetclient because it will become a client of the puppetmaster.

  12. Launch the puppetclient Server and wait for it to become operational.

  13. Run the Connect with puppetmaster Operational Script on the puppetclient server.

You now have a Puppet setup on EC2 that you launched and configured using the RightScale Management Platform.