Installere Puppetmaster, Puppet og Foreman på Centos 6
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