Installing Puppet Master with Foreman frontend on CentOS 5.5

In this CentOS 5.5 tutorial we will be installing Foreman on a CentOS 5.5 i386 server including Puppet Master and Puppet client. The assumption is that you have a basic to medium understanding of the software required but if you follow this tutorial you should be able to complete the task successfully.

A bit on the software that we’ll be using:

Foreman is aimed to be a Single Address For All Machines Life Cycle Management.

Foreman integrates with Puppet (and acts as web front end to it).

Foreman takes care of bare bone provisioning until the point puppet is running, allowing Puppet to do what it does best.

Foreman shows you Systems Inventory (based on Facter) and provides real time information about hosts status based on Puppet reports.

Foreman creates everything you need when adding a new machine to your network. It’s goal being automatically managing everything you would normally manage manually – that would eventually include DNS, DHCP, TFTP, PuppetCA, CMDB and everything else you might consider useful.

With Foreman You Can Always Rebuild Your Machines From Scratch!

Foreman is designed to work in a large enterprise, where multiple domains, subnets and puppetmasters are required.

Preliminary Note:
I am using a CentOS 5.5 i386 base installation in this tutorial with root access.

* (IP CentOS 5.5 i386 base installation

Lets begin by adding additional CentOS 5.5. repositories and installing the framework required by Foreman.

Lets begin installing the framework starting with Puppet Master, client and MySQL

Let do a basic Puppet Master and client configuration.

Start MySQL and add it to startup

Add the Puppet Database

Install Foreman and configure the Database and enable reporting.

Foreman uses a database, by default, SQLite is used, if you want to use other database (e.g. MySQL) please modify the configuration file under config/database.yml.

To enable reporting in Foreman you’ll be required to copy foreman-report.rb to your report directory, edit the $foreman_url=, and then add it to your master puppet.conf under the main section add:

Finally to initialize the database schema type:

Let start, and add to startup, the various componants and browse to your newly installed Puppet Master and client with Foreman frontend.

Point your bowser to