Installing Puppet
If you already have a working Puppet installation, you can skip this section. If not, or if you want to upgrade or re-install Puppet, we'll go through the installation process step by step.
I'm using an Amazon EC2 cloud instance to demonstrate setting up Puppet, though you may prefer to use a physical server, a Linux workstation, or a virtual machine such as Vagrant, VMWare, or VirtualBox (with Internet access). I'll log in as the ubuntu
user and use sudo
to run commands that need root
privileges (the default setup on Ubuntu).
Note
On EC2 Ubuntu images, the ubuntu
user is already set up with the sudo
permissions to run any commands as root
. If you're using a different Linux distribution or you're not on EC2, you'll need to configure this yourself in the /etc/sudoers
file.
Getting ready...
To prepare the machine for Puppet, we need to set its hostname.
Set a suitable hostname for your server (ignore any warning from
sudo
):ubuntu@domU-12-31-39-09-51-23:~$ sudo hostname cookbook ubuntu@domU-12-31-39-09-51-23:~$ sudo su -c 'echo cookbook >/etc/hostname' sudo: unable to resolve host cookbook
Log out and log back in to check the hostname is now correctly set:
ubuntu@cookbook:~$
Find out the local IP address of the server:
ubuntu@cookbook:~$ ip addr show |grep eth0 inet 10.96.247.132/23 brd 10.96.247.255 scope global eth0
Copy the IP address of your server (here it's
10.96.247.132
) and add this to the/etc/hosts
file so that it looks something like this (use your own hostname and domain):10.96.247.132 cookbook cookbook.example.com
How to do it...
Puppet packages for most Linux distributions, including Ubuntu, are available from Puppet Labs. Here's how to install the version for Ubuntu 12.04 Precise:
Download the Puppet Labs
repo
package:ubuntu@cookbook:~$ wget http://apt.puppetlabs.com/puppetlabs- release-precise.deb
Install the
repo
package:ubuntu@cookbook:~$ sudo dpkg -i puppetlabs-release-precise.deb Selecting previously unselected package puppetlabs-release. (Reading database ... 33975 files and directories currently installed.) Unpacking puppetlabs-release (from puppetlabs-release- precise.deb) Setting up puppetlabs-release (1.0-5)
Update your APT configuration:
ubuntu@cookbook:~$ sudo apt-get update
Note
If you're not using Ubuntu 12.04 Precise, you can find out how to add the Puppet Labs repos package to your system here:
http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html
Install Puppet:
ubuntu@cookbook:~$ sudo apt-get -y install puppet
Note
If you're on Mac, you can download and install suitable DMG images from Puppet Labs available at:
https://downloads.puppetlabs.com/mac/
If you're using Windows, you can download MSI packages from the Puppet Labs website available at:
Run the following command to check that Puppet is properly installed:
ubuntu@cookbook:~$ puppet --version 3.2.2
If the version of Puppet you've installed is not exactly the same, it doesn't matter; you'll get whatever is the latest version made available by Puppet Labs. So long as your version is at least 3.0, you should have no trouble running the examples in this book.
If you have an older version of Puppet, you may find that some things don't work or work differently to the way you'd expect. I recommend that you upgrade to Puppet 3.x or later if at all possible.
Now that Puppet is set up, you can use it to make some configuration changes by creating a manifest. We'll see how to do this in the next section.