Zur Verwaltung mehrerer Raspberry Pis bietet sich dies natürlich auch an. Daher möchte ich in dieser zweiteiligen Serie vorstellen wie man ein Raspberry Pi als Puppet Master konfiguriert.
Installation
Betriebssystem
Im ersten Schritt muss die Raspbian Distribution installiert werden. Zentrales Element bei Puppet ist der Hostname. Daher muss nach der Installation der Hostname gesetzt werden.
Hier muss dabei der FQDN verwendet werden, um später eine passende Zuordnung zu ermöglichen.
puppetmaster.foxplex.local
Um genug Arbeitsspeicher für den Betrieb zur Verfügung zu haben muss der Memory Split angepasst werden. Den Speicher für die GPU wird hier auf 16 MB runtergesetzt.
Puppet
Zunächst binden wir das Puppetlabs Repository ein.
wget https://apt.puppetlabs.com/puppetlabs-release-wheezy.deb
sudo dpkg -i puppetlabs-release-wheezy.deb
Anschließend werden die Paketlisten neu eingelesen.
sudo apt-get update
Vor der Installation von Puppet werden noch einige Abhängigkeiten benötigt.
sudo apt-get install bind9-host lsb-release ruby-rgen ruby-json
Weiterhin wird das Paket facter in einer Version >= 1.7 benötigt, leider ist in den Raspbian Paketquellen nur eine veraltete Version enthalten. Daher bedienen wir uns kurzerhand bei Ubuntu.
wget http://de.archive.ubuntu.com/ubuntu/pool/main/f/facter/facter_1.7.5-1ubuntu1_all.deb
sudo dpkg -i facter_1.7.5-1ubuntu1_all.deb
Jetzt kann der Puppet Master installiert werden. An dieser Stelle installieren wir gleich das Paket puppetmaster-passenger, wodurch als Webserver gleich Apache eingesetzt wird.
sudo apt-get install puppetmaster-passenger puppetdb puppetdb-terminus
Während der Installation wird auch nach dem gewünschten MySQL Root Passwort gefragt, welches man hier gleich vergeben sollte. Per Standard wird Ruby in der Version 1.9 verwendet. Allerdings kann es hierbei mit Puppet zu Problemen kommen. Daher stellen wir die Standardversion auf 1.8.
sudo update-alternatives --set ruby /usr/bin/ruby1.8
Konfiguration
Nachdem die Installation abgeschlossen ist, folgt die Konfiguration der Puppet Komponenten.
Puppet Master
Zunächst wird die Autosign Funktion aktiviert, damit werden neu angelegte Server automatisch am Master registriert. Hierzu die Datei /etc/puppet/autosign.conf editieren.
# Automatische Registrierung aller Server
*
Puppet DB
Als ersten Schritt erzeugen wir die SSL Zertifikate für Puppet DB.
sudo puppetdb ssl-setup
Folgend werden die Verbindungseinstellungen in der Datei /etc/puppet/puppetdb.conf angepasst.
[main]
server = puppetmaster.foxplex.local
port = 8081
Jetzt wird das Speicherbackend noch auf Puppet DB umgestellt. Hierzu sind zunächst Änderungen in der Datei /etc/puppet/routes.yaml notwendig.
master:
facts:
terminus: puppetdb
cache: yaml
Außerdem muss noch die zentrale Konfigurationsdatei /etc/puppet/puppet.conf angepasst werden.
[agent]
server = puppetmaster.foxplex.local
[master]
storeconfigs = true
storeconfigs_backend = puppetdb
Fileserver
Als letzten Schritt konfigurieren wir noch den Puppet Fileserver. Die Konfiguration befindet sich in der Datei /etc/puppet/fileserver.conf.
[files]
path /etc/puppet/files
allow *.foxplex.local
Startskripte
Nach der Installation sind die Init Skripte standardmäßig deaktiviert. Zur Aktivierung des Puppet Dienstes editieren wir zunächst die Datei /etc/default/puppet:
START=yes
Zusätzlich aktivieren wir den automatischen Start. Hier auch für den Apache Webserver, welcher den Puppet Master betreibt.
sudo update-rc.d puppet defaults
sudo update-rc.d puppetdb defaults
sudo update-rc.d apache2 defaults
Zum Abschluss einen Neustart durchführen. Nach dem Start kann es nochmal bis zu 15 Minuten dauern, bis die Puppet DB gestartet ist. Die CPU Load ist bis dahin auf 100%.
Erster Test
Für den ersten Test führen wir einen Testdurchlauf von Puppet durch.
sudo puppet agent -t
Schlägt dieser Versuch mit der nachfolgenden Meldung fehlt, ist der Puppet DB Dienst noch nicht gestartet. Wie oben beschreiben kann dies etwas dauern.
Warning: Error 400 on SERVER: Could not retrieve facts for puppetmaster.esn.local: Failed to submit 'replace facts' command for puppetmaster.esn.local to PuppetDB at puppetmaster.esn.local:8081: Connection refused - connect(2)
Einstieg in Puppet
Um sich ein genaueres Bild von Puppet zu verschaffen empfehlen wir das Puppet Starter Guide. Hier sind alle notwendigen Infos und Anleitungen zu Puppet übersichtlich zusammengefasst.
Fazit
Damit ist die Grundinstallation und Konfiguration des Puppet Masters auf dem Raspberry Pi abgeschlossen. Im nächsten Teil geht es dann mit der Anbindung des Puppet Dashboards weiter.
Hinterlasse einen Kommentar