Schaut man sich so die Webhooks auf puppetforge usw. an stellt man spätestens bei der Installation fest, das sind Monster. Unzählige Abhängigkeiten um dann so was banales zu machen wie bei einem HTTP-Request, hinten raus irgendwas zu triggern.

Da auf unserem Puppet-Server sowieso der Apache läuft, gehts mit folgenden zwei Ansätzen deutlich einfacher:

Entweder ganz ohne Apache o.Ä. ruft man einfach minütlich

r10k deploy environment -p

auf. Oder wenn man dem Puppet den Gang zum git sparen möchte, bietet man dem git(lab) über folgenden Dreizeiler einen Webhook via Webserver+PHP und frägt diese Statusdatei mit cron minütlich ab, um nur bei Veränderung loszulaufen:

* * * * test -e /var/www/r10k/run_now && r10k deploy environment -p && rm /var/www/r10k/run_now &> /dev/null

Sowie der „webhook“:

<?php
$result = shell_exec('touch /var/www/r10k/run_now');
?>

Categories: Blog