Puppet auf Ubuntu 8.04

Aus Howtos und Gedankenstuetzen

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Netzwerkeinstellungen

Wenn kein DNS vorhanden ist schreiben wir nach dem Grundsetup der Server folgendes in die /etc/hosts

192.168.0.1 puppet-master
192.168.0.2 puppet-client1

Der Server läuft auf Port 8140. Eventuell muss man diesen in der Firewall freigeschaltet werden.

Zuerst muss man auf Server/Client folgende Pakete installieren.

apt-get install libopenssl-ruby rdoc irb1.8 libopenssl-ruby1.8 libreadline-ruby1.8 libruby1.8 rdoc1.8 ruby1.8 

Client Installation

apt-get install puppet

Server Installation

apt-get install puppet puppet-master

Server Vorbereitung

nano /etc/puppet/manifests/site.pp 
class test_class {
   file { "/tmp/testfile":
      ensure => present,
      mode   => 644,
      owner  => root,
      group  => root
   }
}

node pclient {
   include test_class

Jetzt kann man den Server starten.

/etc/init.d/puppetmaster start 

Client Vorbereitungen

nano /etc/puppet/puppet.conf
[main]
server = puppet-master
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
pluginsync=true

[puppetmasterd]
templatedir=/var/lib/puppet/templates

Nun kann man von Client aus ein SSL Zertifikat anfordern.

puppetd --server puppet-master --waitforcert 60 --test 

Dieses wird vom Server automatisch signiert. Und puppet führt einmalig die im Manifest angegebene Aktion durch. Jetzt kann man testen ob die Datei erzeugt wurde.

ls -l /tmp/testfile
-rw-r--r-- 1 root root 0 2007-02-18 18:28 /tmp/testfile

Für eine weiteren Test ändern wir nun die Zugriffsrechte auf die Datei.

class test_class {
   file { "/tmp/testfile":
      ensure => present,
      mode   => 600,
      owner  => root,
      group  => root
   }
}

node pclient {
   include test_class
}

Jetzt starten wir auf dem Client puppetd im verbose mode (-v) only-once (-o) und danach schauen wir uns die Datei an

puppetd -v -o | ls -l /tmp/testfile
-rw------- 1 root root 0 2007-02-18 18:28 /tmp/testfile

Nun haben wir ein funktionierendes puppet Setup. Jetzt sollten wir weiter am Manifest schrauben je nachdem was wir erreichen wollen. Auf dem Client starten wir puppet noch mit

/etc/init.d/puppet start

Puppet schaut automatisch auf dem Server alle 30 Minuten nach.