Friday, July 8, 2016

Using Foreman, an Opensource Frontend for Puppet

Using Foreman, an Opensource Frontend for Puppet
The recent vulnerability in bash, got me running to update bash. It’s easy when you have maybe one or two Linux servers, but what do you do if you have 100’s or even thousands or servers? You need to use a server configuration and management tool like puppet. However, instead of using the command line, I wanted a GUI tool where I could select the servers or server group and select an action.
That is where I found Foreman, A opensource tool which not only handles configuration of your servers but also does provisioning. Foreman is easy to install, opensource, has community based support and a good deal of documentation.

Installing Foreman on CentOS
Please ensure that you perform these steps on a fresh install on CentOS which has the EPEL repository.
[leo@centos-vps]$ sudo yum -y install
[leo@centos-vps]$sudo yum install foreman-installer
Debian users refer
As I said earlier, Foreman is easy to install, just run the installer below and it will install both foreman and puppet.
[root@puppet ~]# foreman-installer
Installing             Done                                               [100%] [....................................................................................]
  * Foreman is running at
      Initial credentials are admin / passwd
  * Foreman Proxy is running at
  * Puppetmaster is running at port 8140
  The full log is at /var/log/foreman-installer/foreman-installer.log
Log into, with the creds in the output of the above command.
foreman gui
puppet gui
Adding a Host to Foreman
You can add a host to foreman by installing the puppet client, signing the certificate and then running the command below.
[leo@centos-vps]$sudo puppet agent --test
Click on Hosts–>All hosts to view your host.
puppet gui
Click on your hostname and then click on facts, this will bring up all info about your host.
puppet gui
Installing a puppet module on a host
Run the below command on the foreman host.
[leo@centos-vps]$sudo puppet module  install -i /etc/puppet/environments/production/modules
Goto your host, click on edit and then “Puppet classes”
puppet gui
Select httpd and click submit. You should be able to see “httpd” on the yaml tab on the next page.
Run the puppet client on the host and you should be able to see the results of a successful install in reports
[leo@centos-vps]$ sudo puppet agent --test
puppet gui
Although I found creating a class from foreman a bit confusing, I was able to create a class via commandline and then import the class into foreman.
Click on Configure–Puppet Classes–Import from once you have created and added your class in /etc/puppet/environments/production/modules.
puppet gui
I could not select all hosts and add a class to them at the same time, But I like that foreman was easy to install and had a good user interface which made it easy to view reports on each hosts.
If you need to setup Puppet only then I recommend you read
A simple way to install Puppet
If you are more comfortable with Commands then I recommend you install the Saltstack.
Getting Started with the Saltstack
If any of you have used foreman or other opensource based GUI then feel free to share your feedback in the comments section.
Puppet v2.7.25
Centos 6.5

No comments:

Post a Comment