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.