Forgot your password?

Forgot your username?

All about IT, Web and Development.
By users for users.

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

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

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

Raspberry Pi Starter Kit
DataCloud

Leave a comment

I have read the privacy policy and agree to electronically store and process my input data to answer the request.

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