Puppet Masterin ja Puppet client asennus:

Hyvät asennusohjeet löytyivät Tero Karvisen kotisivuilta: http://terokarvinen.com/2012/puppetmaster-on-ubuntu-12-04


'Local Network' -hostname:n käyttöönotto.

Vaihdetaan aluksi live CD:n hostname ja katsotaan, että 'local network' -hostnamet toimivat:


Korvataan 'xubuntu' halutulla hostnamella (esimerkkinä käytän 'master').

$ sudoedit /etc/hosts

Korvataan 'xubuntu' halutulla hostnamella,

$ sudoedit /etc/hostname

Varmistetaan vielä hostnamen vaihto ja käynnistetään avahi-daemon uudestaan.

$ sudo hostname master
$ sudo service avahi-daemon restart
avahi-daemon stop/waiting
avahi-daemon start/running, process 3923

Testataan toimivuus pingaamalla:

$ ping master.local
PING master.local (xxx.xx.x.xxx) 56(84) bytes of data.
64 bytes from master.local (xxx.xx.x.xxx): icmp_req=1 ttl=64 time=0.014 ms

Puppet Masterin asennus ja konfigurointi:

$ sudo apt-get update
$ sudo apt-get -y install puppetmaster

Pysäytetään Puppet Master ja poistetaan oletuksena olevat sertifikaatit:

$ sudo service puppetmaster stop
 * Stopping puppet master
$ sudo rm -rf /var/lib/puppet/ssl

Lisätään Puppet Masterin config-tiedostoon Puppet Masterina toimivan koneen hostname.

$ sudoedit /etc/puppet/puppet.conf

[master] kohdan alle lisätään rivi:

dns_alt_names = master.local

Käynnistetään Puppet Master, jolloin muutokset sisältävä sertifikaatti luodaan automaattisesti:

$ sudo service puppetmaster start

Puppet clientin asennus ja konfigurointi:

Normaalisti Puppet Master ja puppet client ovat eri koneilla, mutta omassa tapauksessani asennan molemmat samalle palvelimelle.


Asennetaan puppet client:

$ sudo apt-get -y install puppet

Lisätään Puppet clientin conf.tiedostoon (sama kuin Masterilla) [agent] otsikko ja käytettävän serverin hostname.

Lisäyksen jälkeen '/etc/puppet/puppet.conf' -tiedosto näyttää seuraavalta:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN 
ssl_client_verify_header = SSL_CLIENT_VERIFY
dns_alt_names = master.local

[agent]
server = master.local
# 'runinterval = 0', määrittää puppet clientin päivittämään asetuksensa jatkuvasti
# oletuksena puppet clientin asetukset päivitetään 30min välein
runinterval = 0

'runinterval = 0' on määritetty siksi, että testejä tehdessä näemme kokoajan tekemämme muutokset.


Sallitaan vielä Puppet clientin käynnistyminen.

$ sudoedit /etc/default/puppet

Muutetaan kohta 'START=no' -> 'START=yes'.


Käynnistetään vielä Puppet client uudestaan, jotta muutokset astuvat voimaan.

$ sudo service puppet restart

Katsotaan hyväksyntää vaativat sertifikaatit:

$ sudo puppet cert --list

Mitään ei tulostu, sillä käytämme samalla koneella Puppet Masteria ja clienttiä, jolloin sertifikaatti on jo hyväksytty.

Hyväksytyt sertifikaatit voidaan tarkistaa seuraavalla tavalla (hyväksytty jos '+'):

$ sudo puppet cert --list --all
+ "master..................:"

Puppet Masterin ja clientin ollessa eri koneilla, sertifikaatti voitaisiin hyväksyä ajamalla seuraava komento Puppet master-koneella:

$ sudo puppet cert --sign sertifikaatti

Nyt vaadittavat konfiguraatiot on tehty Puppetin käyttöä varten!




Lähteet:

http://terokarvinen.com/2012/puppetmaster-on-ubuntu-12-04