Passwort vergessen?

Benutzername vergessen?

Alles rund um IT, Web und Entwicklung.
Von Nutzern für Nutzer.

Raspberry Pi als Puppet Master - Teil 2



In diesem Teil der Serie möchte ich mich der Installation und Konfiguration des Puppet Dashboards widmen.



Mit diesem lässt sich der Überblick über die Systemlandschaft behalten.


Installation


Im ersten Teil haben wir bereits alle notwendigen Repositories und Abhängigkeiten installiert. Daher müssen hier nur die benötigten Komponenten nachgezogen werden.

sudo apt-get install mysql-server puppet-dashboard

Während der Installation wird auch nach dem gewünschten MySQL Root Passwort gefragt, welches man hier gleich vergeben sollte


Datenbank


Als erstes muss die Datenbank für die Umgebungen "Production, Development und Test angelegt werden".

mysql -u root -p

CREATE DATABASE dashboard_prod;
CREATE DATABASE dashboard_dev;
CREATE DATABASE dashboard_test;

GRANT ALL PRIVILEGES ON dashboard_prod.* TO dashboard_prod@localhost IDENTIFIED BY 'passwort';

GRANT ALL PRIVILEGES ON dashboard_dev.* TO dashboard_dev@localhost IDENTIFIED BY 'passwort';

GRANT ALL PRIVILEGES ON dashboard_test.* TO dashboard_test@localhost IDENTIFIED BY 'passwort';

FLUSH PRIVILEGES;
exit;


Dementsprechend muss die Datenbankkonfiguration angepasst werden. Dies geschieht in der Datei /usr/share/puppet-dashboard/config/database.yml.

production:
database: dashboard_prod
username: dashboard_prod
password: passwort
encoding: utf8
adapter: mysql

development:
database: dashboard_dev
username: dashboard_dev
password: passwort
encoding: utf8
adapter: mysql

test:
database: dashboard_test
username: dashboard_test
password: passwort
encoding: utf8
adapter: mysql


Im Anschluss kann die Tabellenstruktur in den Datenbanken angelegt werden.

cd /usr/share/puppet-dashboard

rake RAILS_ENV=production db:migrate
rake RAILS_ENV=development db:migrate
rake RAILS_ENV=test db:migrate


Konfiguration


Um die Logdateien für das Puppet Dashboard beschreibbar zu machen, setzen wir die passenden Berechtigungen.

sudo chmod 0666 /usr/share/puppet-dashboard/log/production.log
sudo chmod 0666 /usr/share/puppet-dashboard/log/development.log
sudo chmod 0666 /usr/share/puppet-dashboard/log/test.log


Nun können wir die Inventarisierung und das Reporting für Puppet aktivieren. Hierzu die Datei /etc/puppet/puppet.conf anpassen.

[agent]
   report = true
   server = puppetmaster.foxplex.local

[master]
   reports = store, http


Im folgenden Schritt wird die Datei /usr/share/puppet-dashboard/config/settings.yml an die aktuelle Umgebung angepasst.

ca_server: ‘puppetmaster.foxplex.local’
enable_inventory_service: true
inventory_server: ‘puppetmaster.foxplex.local’
use_file_bucket_diffs: true
file_bucket_server: ‘puppetmaster.foxplex.local’
time_zone: ‘Berlin’


Für den Zugriff des Dashboards auf die Inventardaten ist noch eine passende Regel in der Datei /etc/puppet/auth.conf notwendig. Wichtig ist hierbei, dass diese oberhalb der letzten Deny Any Regel eingefügt wird.

path /facts
auth yes
method find, search
allow dashboard

# deny everything else
...


Leider befindet sich im offiziellen Paket ein Fehler im Init Skript, welcher den Ladevorgang als failed deklariert (Siehe: Hilfe Eintrag zu Bug #20325).

Daher kommentieren wir die entsprechende Zeile in der /etc/init.d/puppet-dashboard aus.

# check_puppet_dashboard_status

Zusätzlich aktivieren wir wieder den automatischen Start in der Datei /etc/default/puppet-dashboard.

START=yes


START=yes
NUM_DELAYED_JOB_WORKERS=1


Abschließend fügen wir die beiden Dienste wieder dem Autostart hinzu und starten das System anschließend neu.

sudo update-rc.d puppet-dashboard defaults
sudo update-rc.d puppet-dashboard-workers defaults

reboot



Dashboard aufrufen


Nach dem Neustart kann das Puppet Dashboard über die IP-Adresse bzw. den Hostnamen des Raspberry Pis unter Port 3000 erreicht werden.

http://puppetmaster.foxplex.local:3000



Fazit


Die Anpassungen durch die Konfiguration auf dem Raspberry Pi halten sich glücklicherweise in Grenzen. Allerdings ist die Konfiguration bis zu einem laufenden Puppet Master sehr langwierig und fehleranfällig.

Der Puppet Master auf dem Raspberry Pi bricht natürlich keine Geschwindigkeitsrekorde, bietet aber grundlegend die Kapazität hunderte Server zu verwalten.

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit
DataCloud

Hinterlasse einen Kommentar

Ich habe die Datenschutzerklärung zur Kenntnis genommen und stimme einer elektronischen Speicherung und Verarbeitung meiner eingegebenen Daten zur Beantwortung der Anfrage zu.

Michael Kostka

29.03.2015 11:00

Hallo Alexander,

das erschlägt einen ja fast :). Habe mal die "doppelten" Einträge rausgenommen.

Die Meldungen sind in diesem Fall nur Hinweise bzw. Warnungen. Versuch mal folgendes:

rake gems:refresh_specs

Anschließend mal mit dem Trace Modus testen, dann können wir sehen an welcher Stelle der Task abbricht:

rake RAILS_ENV=production db:migrate --trace

Viele Grüße
Michael

Alexander Blümm

10.03.2015 12:36

Hallo Michael,

vielen Dank für deine Anleitung. Ich bin beim Anlegen der Tabellenstruktur ins stocken geraten.

Bitte kürze die Fehlermeldungen sinneswahrend. :)

Die 3 "rake ..." werfen folgende Fehler.

root@puppetmaster:/usr/share/puppet-dashboard# rake RAILS_ENV=production db:migrate
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/share/puppet-dashboard/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21.

config.gem: Unpacked gem rack-1.1.6 in vendor/gems has no specification file. Run 'rake gems:refresh_specs' to fix this.
NOTE: Gem::SourceIndex#initialize is deprecated with no replacement. It will be removed on or after 2011-11-01.

rake aborted!
production database is not configured

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)
root@puppetmaster:/usr/share/puppet-dashboard#

Danke
Alex