DevOps shortcut: Installing Puppet

Shell one-liners to install 3.x open source version of Puppet into your box.

muenchhausen_herrfurth_7_500x789

I’d use these when I want to get Puppet up and running as soon as possible. Most likely when I want to use Puppet immediately without getting into the details about how it is installed and exactly what versions are needed. These just uses the official Puppet repository for each system’s native package manager, so shouldn’t be too big of a difference if you were to follow puppet’s official documentation anyway.

For Ubuntu and OSX, they should work with version 12.04 LTS, 10.8 and 10.7 at the time of writing. This one-liner links to the master, so they could work for newer releases.

CentOS/RHEL 7

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/centos_7_x.sh | sudo bash

CentOS/RHEL 6

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/centos_6_x.sh | sudo bash

CentOS/RHEL 5

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/centos_5_x.sh | sudo bash

Arch Linux

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/arch.sh | sudo bash

Debian

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/debian.sh | sudo bash

Ubuntu

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/ubuntu.sh | sudo bash

FreeBSD

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/freebsd.sh | sudo sh

Mac OS X

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/mac_os_x.sh | sudo bash

Solaris

curl https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/solaris.sh | sudo bash

Windows

The URL to the powershell install script are included below for completeness:

https://github.com/hashicorp/puppet-bootstrap/blob/master/windows.ps1

Written for Vagrant, works everywhere

These one liners simply calls scripts used for installing puppet when provisioning Vagrant boxes, developed and maintained by the good people at HashiCorp and available on GitHub. Feel free to fork and contribute at:

https://github.com/hashicorp/puppet-bootstrap

Since these scripts just assumes the targets are just mostly vanilla OS on Vagrant boxes, they actually work everywhere else too, no matter if it is a system running on bare metal, an instance in the cloud (AWS, Rackspace, etc), or a local Vagrant box.

I get to know about these Puppet bootstrap scripts while I was developing a Vagrant base box with Puppet at work, to get Puppet installed so that my Vagrant boxes can be provisioned with Puppet. One day I had an old physical box running CentOS 6 that I wanted to make changes to. As nowadays I have become more familiar with RHEL/CentOS 7 and Puppet, less familiar with CentOS 6, so it would actually be less work for me to install Puppet and configure it through Puppet. I were not even writing a single Puppet file (more on that in a future blog). Realised I just wanted any recent-ish version of Puppet that can help me install stuff and make it start on boot (installing nginx and get it start on boot, that’s all I wanted for this occasion) without looking up how things worked in CentOS 6.

I just typed this one liner into the CentOS 6 box, which installed Puppet, and everything went smoothly as planned – without running yum or chkconfig myself.

The CentOS 6 machine was actually an Intel NUC. I am saving the one liner here and so that Puppet can be installed easily for all the operating systems this GitHub project supports for future reference.

Be careful of dragons, you are running commands from the internetz… a disclaimer!

These one liners directly execute a bunch of shell commands as root, downloaded from the internet. Yes it is a GitHub project served over https from the good people at HashiCorp… just exercise common sense and caution, base on your own situation and risk management requirements!


One thought on “DevOps shortcut: Installing Puppet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s