sldeploy Systemkonfiguration protokollieren über GIT mit Mac OS X
Dieser Artikel beschreibt, wie man mit sldeploy die Systemkonfiguration über ein Git Repository überwachen kann.
sldeploy geht dabei wie folgt vor:
- das Verzeichnis /private/etc wird über rsync gespiegelt. Das gespiegelte Verzeichnis wird mit Git verwaltet
- es werden die Metadaten zu /private/etc getrackt (z.B. Benutzerrechte)
- falls vorhanden/konfiguriert, werden zu einem (oder mehreren) Drupal Projekt die installierten Module protokolliert
Voraussetzungen
- SSH Key-Authentifizierung zum Git-Server ist eingerichtet (falls ein externen Server verwendet wird)
- macports ist installiert
Installation
Zuerst installieren wir mit Hilfe von macports die benötigten Programme:
Über github bezieht man sldeploy
Konfiguration
Wir legen die Konfigurationsdatei im Verzeichnis /private/etc mit dem Namen slphpdev.inc.php an und setzen folgenden Inhalt:
// sldeploy for mac os x
$conf['git_bin'] = '/opt/local/bin/git';
$conf['rsync_bin'] = '/opt/local/bin/rsync';
# required for log
$conf['package_manager'] = 'port';
$conf['log_source'] = /private/var/root/log_source';
$conf['log_host'] = 'mein_hostname';
$conf['etc_dir'] = '/private/etc';
$conf['log_excludes'] = '~ .dpkg-new .dpkg-old adjtime mtab ld.so.cache cups/certs';
Mit log_excludes kann man Muster (Dateien und Verzeichnisse) definieren, die von der Überwachung ausgeschlossen werden sollen. Besonders Dateien, die vom System automatisch aktualisiert werden, sollten ausgeschlossen werden, um das Protokoll übersichtlich zu halten.
Unsere Buchempfehlung
sldeploy erwartet nun im Verzeichnis /var/root/log_source das Git Repository zu finden, in dem die Informationen protokolliert werden sollen. Um ein neues Repository anzulegen, führen wir folgenden Befehl aus:
sudo git init /private/var/root/log_source
Falls ein bestehendes Repository verwendet werden soll, verwendet man:
Wichtig ist, dass dies mit sudo gemacht wird, da Administrator Rechte erforderlich sind, um die Infos zu loggen. Im Repository muss ein Verzeichnis existieren, welches den Namen trägt, der unter log_host definiert wurde. Falls dieses Verzeichnis nicht existiert, muss dies angelegt werden.
Anwendung
Am besten startet man das Skript über einen Cronjob, der mindestens einmal am Tag ausgeführt wird. Um die Konfiguration auf Funktionstüchtigkeit zu testen, führen wir zuerst das Skript manuell aus:
Falls alles funktioniert, müsste jetzt ein Commit in das Git Repository ausgeführt worden sein. Falls dies nicht der Fall ist, muss die Konfiguration überprüft werden.
Hat alles bei der manuellen Ausführung funktioniert, kann man nun einen Cronjob anlegen, der sldeploy z.B. alle 12 Stunden automatisch ausführt:
Nun fügt man folgende Zeile ein:
Auswertung
Nun kann man komfortabel über das Git Repository beobachten, was sich an der Konfiguration des Systems (oder auch der Drupal Module) verändert hat. Hier ein Beispiel, in dem man eine Veränderung eines Drupal Themes über Gitweb angezeigt bekommt. Acquia Marina wurde von "Aktiv" auf "Inaktiv" gesetzt:

Damit Drupal Module auch protokolliert werden, muss in der Konfigurationsdatei das Projekt definiert worden sein und der Pfad zu Drush hinterlegt worden sein (siehe mitgelieferte Beispiel-Konfigurationsdatei von sldeploy).
Alle hier aufgeführten Informationen / Dokumentationen sind nur als Denkanstoß gedacht und wurden mit großer Sorgfalt erarbeitet. Es besteht jedoch kein Anrecht auf Vollständigkeit / Richtigkeit. Der Autor kann für eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Gleiches gilt für entstandene Schäden bei unsachgemäßer Ausführung! Im Zweifelsfall immer einen Fachmann mit der Durchführung beauftragen!
Gerne bieten wir Ihnen hierfür unsere Consulting Dienste an. © Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten.


