This tutorial will show you a simple way to integrate Puppet with Scalr. It will use features that are only available with the Puppet Enterprise version, which is free to use with up to 10 nodes.
We will use Orchestration to automate the installation of Puppet Enterprise (if you don't already have it setup) as well as make sure all servers/nodes install the Puppet Agent and register with the Puppet Master.
Lastly, we will show how to connect a Scalr Role to a Puppet Class which will let Puppet know which servers to configure and how to configure them.
After following the tutorial, your servers will be fully controlled by your Puppet Master.
For example; you will be able to add a "webserver" Role to a Farm, and use Scalr to automatically launch a new server, have Puppet install Apache on it, and enable further configuration from your Puppet Master.
Puppet is a declarative configuration management system that allows you to define the state of your IT infrastructure, then automatically enforces the correct state.
For example, if you define that your "webserver" nodes should have Apache installed and running, Puppet will check all nodes of that class for an installed and running Apache. If Puppet observes a different state of affairs, it will install / restart Apache to match the desired state.
Items Covered in this Tutorial
For this tutorial to work, Puppet requires that your server hostnames resolve to their respective IPs and that your servers can reach each other through these hostnames.
This includes setting up DNS, firewall rules, security groups etc. Note that Puppet Enterprise listens on ports 443, 8140 and 61613, whereas the Puppet Agent listens on port 8140.
Also make sure that you have entered your cloud credentials into Scalr for the cloud provider(s) that you plan to use with this tutorial.
If you already have a Puppet Enterprise server running, you can skip to Step 2 - Configuring Puppet Enterprise.