Puppet Blog

Back to Index

Managing Amazon EC2 nodes with Puppet

Posted on
By
Scott Olson
in
Blog
Responses
5 Comments »

Puppet Lab’s Dan Bode recently posted this blog regarding installing Amazon EC2 nodes with Puppet along with sample code. Check it out.

5 Comments

Chris Fumai

We are using puppet on solaris and linux at neuberger berman and extending our use of it all the time !

thanks

DavePClouds

Hi

So far with Amazon EC2, I’ve been using shell scripts for loading profiles (manifests), with arguments which are passed in via the “user-data” field. The profiles are pretty easy to write, being simple bash scripts, and have access to all of the Amazon AWS features via the available command line tools, and a shared library of functions to do common things like mounting ebsvolumes or accessing S3. You can see what I’ve implemented so far, here http://www.practicalclouds.com

At the moment the process is only suited to small deployments and doesn’t allow for the kind of auditing, large scale deploys or flexibility of operating system that puppet supports. Searching for puppet support for EC2 returns many blogs and how-tos, but they don’t seem to delve into many of the EC2 features, such as support for Elastic Load Balancers, Elastic Block Storage, Simple DB, S3 etc.. etc.. Is there a comprehensive module out there, or do we need to continue to use the available command line tools via external command calls? I found the ‘aws’ tool from http://timkay.com/aws/ great for command line access to EC2 – is there a better way for puppet?

regards

Dave

Dave

Here’s another guide that will help you bootstrap your EC2 nodes with Puppet. Installing a Puppet Master is not a staight forward task and you need to get your puppet master up and running before you can think about using it to configure other clients. The “puppet” profile will load everything that is required to install and configure either a master or a client and loads everything required at boot time (so you get the latest versions). You can create your own AMI or use mine (search for ‘practicalclouds’).

http://www.practicalclouds.com/content/guide/puppet-deployment

The profile installs and configures the following: -

* Puppet Agent or Master, Puppet Dashboard, and Facter
* Apache and Ruby Passenger for performance and scalability.
* MySQL for external resources, the dashboard, and external node classifier.
* MCollective and ActiveMQ for real time orchestration features.
* Puppet Module for downloading modules from the puppet labs module repository.
* Puppet Cloud Provisioner module, Fog, and the AWS Ruby SDK.
* MCollective Plugins for controlling puppet and services, and automatic configuration of puppet environment facts for use in MCollective.
* Inventory and file bucket services for the dashboard.
* Automatic Backups of puppet configs, puppet data, apache configs and MySQL database.

It’s freely available in every AWS Zone and I hope it helps you in getting your platforms up and running.

regards

Dave

Leave a Response