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
Weiterhin muss die Datei /etc/default/puppet-dashboard-workers angepasst werden.
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
29.03.2015 11:00
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
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