Der nächste Schritt besteht darin, ein Grundgerüst von Skripten für einen Cloud-Provisioning-Server wie Scalr oder Rightscale zu schreiben. Die entsprechenden Skripte des Autors für diesen Anwendungsfall sind alle Teil eines einzigen Debian-Pakets.
Eine einzelne HTML-Datei ist für Cloud-Anwendungen wenig sinnvoll, deshalb gibt es nun ein etwas nützlicheres Beispiel. Die Konfiguration des Webservers lässt sich ebenso leicht über ein Debian-Paket verwalten, das beispielsweise die Datei »/etc/apache/conf.d/our-config.conf
«
enthält. Wenn der Webserver bereits so konfiguriert ist, dass er die Dateien im Verzeichnis »conf.d
«
liest, ist damit die Konfiguration auch gleich abgeschlossen.
Cloud-Hosting wird kompliziert, wenn die Serverkonfiguration exotisch wird. Sie sollten sich daher möglichst nah an Standard-Konfigurationen bewegen, um unnötige Komplexität zu vermeiden.
Ein weiteres nützliches Skript für Cloud-Server führt bestimmte Tasks zu verschiedenen Zeitpunkten im Lebenszyklus einer Instanz aus. Zum Beispiel gibt es bei einem Service wie Scalr solche Events wie »OnHostup
«
, »OnHostInit
«
und »OnIPAddressChanged
«
. Die Skripte, die solche Events verarbeiten, können Sie wiederum in Debian-Pakete packen:
./usr/local/myserver/bin/on-host-up.sh ./usr/local/myserver/bin/on-ip-address-changed.sh
Das erste Skript soll, wenn die Netzwerkverbindung steht, eine HTML- oder PHP-Datei etwa von Amazon S3 herunterladen und sie im Document-Root des Webservers ablegen (Listing 3).
Listing 3
on-host-up.sh
Packen Sie dann das Projekt wieder in ein Deb-File und legen es auf einem öffentlich zugänglichen Server ab, von dem Sie es herunterladen können. Beim Scalr-Service loggen Sie sich dann auf dem Webinterface ein und legen ein neues Skript an (Abbildung 1).
Speichern Sie das Skript unter dem Namen des Events, bei dem es ablaufen soll, und wechseln dann zur Farm-Konfiguration. Dort können Sie die erstellten Skripte in einem GUI verwalten und aktivieren (Abbildung 2).
Ein weiteres Skript, das jedes Mal abläuft, wenn sich die IP-Adresse eines Knotens ändert, kann zum Beispiel den dynamischen DNS-Eintrag ändern, beispielsweise so:
curl 'http://www.dnsmadeeasy.com/servlet/updateip?username=myuser&password=mypassword&id=99999999&ip=123.231.123.231'
Speichern Sie den Befehl in der Datei »on-ip-address-changed.sh
«
und paketieren das Skript in der Deb-Datei, die Sie danach wieder an den alten Ort laden, von wo ein Cloud-Knoten sie über Wget herunterlädt.