Sunday, September 2, 2012

Installing Puppet-dashboard on Centos 5.7

I got puppet-dashboard up and going fairly quickly so I thought I share. The puppet site provides many different ways.

For me, I wanted to stick with RPMs.

I began by enabling the epel repo from fedora (since I was already using EPEL, otherwise I could have added the puppetlabs repo). (http://fedoraproject.org/wiki/EPEL) It's a pretty simple install if you want to use it and you don't already have it.
~# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Now, begin by installing the third party dependencies like Apache, Ruby, RubyGems, MySQL, Ruby-MySQL.
~# yum install mysql-server httpd httpd-devel
   (run this to get it going after the install mysql_secure_installation)
   (but start it up first; i.e. 'service mysqld start')

~# yum install --enablerepo=epel ruby ruby-devel rubygems rubygem-rack rubygem-rails rubygem-rake ruby-mysql

Then, use the epel repo to perform the installation.~# yum --enablerepo=epel puppet-dashboard

After the installation, you have to configure the database.yml file.
~# updatedb
~# locate database.yml
/usr/share/puppet-dashboard/config/database.yml
~# vi /usr/share/puppet-dashboard/config/database.yml


I commented out everything except the following.
production:
  database: dashboard
  username: dashboard
  password: somesecretpassword
  encoding: utf8
  adapter: mysql



Get a working settings.yml file
~# locate settings.yml
/usr/share/puppet-dashboard/config/settings.yml.example
~# mv /usr/share/puppet-dashboard/config/settings.yml.example /usr/share/puppet-dashboard/config/settings.yml

Create the DB
log in to your mysql server and run the following...

CREATE DATABASE dashboard CHARACTER SET utf8;
CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'somesecretpassword';
GRANT ALL PRIVILEGES ON dashboard.* TO 'dashboard'@'localhost';

Create the tables
cd /usr/share/puppet-dashboard/config/
rake RAILS_ENV=production db:migrate

That's it! Puppet-dashboard is installed and configured but we still need to tell puppet server and puppet agent that we want reporting.

Add the following to [master] (puppet 2.6+)
reports = http, store

Add the following to [agent] (puppet 2.6+)
report = true

You can start using it by typeing the following (like the web page says)
sudo -u puppet-dashboard /usr/share/puppet-dashboard/script/server -e production

On a browser, go to http://$host:3000 and it should show up.

However, at one point or another, you'll want to install either passenger or thin. I went with passenger. I went to their website and followed their RPM installation instructions and it did not work. The link was dead so I ended up using gem to perform the installation. "gem install passenger"


Since, I'm using apache, I ran...
~# passenger-install-apache2-module

The script suggested to install the following since I didn't have it already installed.
~# yum install gcc-c++ curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel

No comments:

Post a Comment