Installere Puppetmaster, Puppet og Foreman på Centos 6

Installere Puppetmaster, Puppet og Foreman på Centos 6

Sat 12 January 2013

Dette er en oppskrift på hvordan jeg fikk satt opp puppet, puppetmastere og foreman på en Centos 6. Er noe uklart legg gjerne igjen en kommentar.

The Foreman

1: Install EPEL repo


yum install http://fedora.uib.no/epel/6/i386/epel-release-6-7.noarch.rpm

2: Installer puppet labs release repo

yum install http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-6.noarch.rpm

3: Install foreman release repo

yum install http://yum.theforeman.org/rc/el6/i386/foreman-release-1.1RC1-3.el6.noarch.rpm

4: Diverse opprydding, yum clean all er en fin vedlikeholdsskommando

yum clean all --enablerepo=*

Vi har nå installert foreman og kan nå den ved å gå til http://localhost:3000

Puppetmaster

1: Installer masse pakker


#Diverse Apache greier


yum install httpd httpd-devel ruby-devel rubygems

#Puppet serveren


yum install puppet-server
yum install mod_ssl

#Pakker for å kompilere passenger-apache2-modulen


yum install curl-devel openssl-devel zlib-devel

#Rack, passenger og script for å kompilere opp passenger-modulen


gem install rack
gem install passenger
passenger-install-apache2-module

2: Konfigurer /etc/puppet/puppet.conf på puppetmasteren


[master]
certname = fqdn
autosign = true

3: Start puppetmaster for første gang. Vi trenger sertifikatet.


/etc/init.d/puppetmaster start
/etc/init.d/puppetmaster stop

4: Konfigurer Apache til å laste passenger

vi /etc/httpd/conf.d/puppetmaster.conf

#Husk å oppdatere alle relevante stier og hostnames til å matche


vi /etc/httpd/conf.d/passenger.conf

#Legg dette inn i filen

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18
PassengerRuby /usr/bin/ruby
#passenger.conf slutter her

5: Installer rack applikasjon


cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/rack.conf

#Husk å oppdatere alle relevante stier og hostnames til å matche


mkdir -p /etc/puppet/rack/publicmkdir -p /etc/puppet/rack/tmp
cp /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack
chown puppet /etc/puppet/rack/config.ru

Integrasjon mellom The Foreman og Puppet, få rapporter inn i Foreman

Del 1 puppetmaster


$ cd /usr/lib/ruby/site_ruby/1.8/puppet/reports/
$ wget https://raw.github.com/theforeman/puppet-foreman/master/templates/foreman-report.rb.erb
$ mv foreman-report.rb.erb foreman.rb


$ vi /usr/lib/ruby/site_ruby/1.8/puppet/reports/foreman.rb

endre følgende variabler på toppen til noe ala dette

$foreman_url='htt://server.domene.no:3000'

$ vi /etc/puppet/puppet.conf

under [master] legger du til "reports = log, foreman"

$ apachectl restart


Del 2 puppetnode

$ vi /etc/puppet/puppet.conf

under [agent] legger du til "reports = true"

Integrasjon mellom The Foreman og Puppet, Foreman blir en ENC (external node classifier)

$ cd /etc/puppet
$ wget https://github.com/theforeman/puppet-foreman/blob/master/templates/external_node.rb.erb
$ mv external_node.rb.erb node.rb


$ vi /etc/puppet/node.rb


endre følgende variabler på toppen til noe ala dette

SETTINGS = {
:url => "http://server.domene.no:3000",

:puppetdir => "/var/lib/puppet",

:facts => true,

:storeconfigs => false,

:timeout => 3,

}

$ chown puppet:puppet /etc/puppet/node.rb
$ chmod +x /etc/puppet/node.rb

$ vi /etc/puppet.conf


legg til følgende under [master]

external_nodes = /etc/puppet/node.rb
node_terminus = exec

$ apachectl restart

Tagged as : puppet ruby foreman centos