Eigene Skripte in Debian-Pakete packen

bekas007, 123Rf

Eingepackt

Damit Server automatisch funktionieren und als Knoten in der Cloud skalieren, bedarf es vieler Skripte, die gründlich getestet werden wollen. Wer lokal testet, kann eigene Skripte mit Debian-Paketen auf den Cloud-Knoten installieren.
Thematischer Schwerpunkt dieser Ausgabe ist die kontinuierliche Überwachung von Servern, Clients und anderen Geräten im Netzwerk: mit dem IPMI-Plugin, dem ... (mehr)

Wer jetzt schon auf dem Cloud-Computing-Zug mitfährt, darf sich freuen: Die Cloud skaliert, die Dienste sind redundant ausgelegt, man ist also für den großen Besucheransturm und gegen Ausfälle gleichermaßen gewappnet. Nur haben sich mittlerweile um die 20 Skripte für eine ganze Reihe unterschiedlicher Aufgaben angesammelt, zum Beispiel eins fürs Booten, eins für den Fall, dass sich die IP-Adresse ändert, und so weiter. Und kürzer und besser zu warten werden die Skripte im Lauf der Zeit garantiert auch nicht. Natürlich können Sie sie in einem Versionskontrollsystem verwalten (das hoffentlich Git ist, aber Hauptsache ein VCS), aber wie installiert man sie zuverlässig und reproduzierbar auf dem Zielsystem?

Hier kommen die guten alten Debian-Paket zu Hilfe. Die lassen sich auf allen Debian-basierten Distributionen wie beispielsweise auch Ubuntu verwenden. Sie sind einfach zu erzeugen und bieten den optimalen Weg, die eigenen Skripte zu paketieren und zu verteilen. Dieser Artikel zeigt im Detail, wie Sie das machen. Außerdem erfahren Sie, wie Sie damit zuverlässig Änderungen auf das Live-System Ihrer Cloud übertragen.

Debian-Pakete lassen sich sehr einfach installieren. Wer schon einmal Debian oder Ubuntu verwendet hat, kennt normalerweise den Ablauf, ein neues Paket zu installieren:

apt-get install Paketname

In einem Debian-Paket stecken die Binärdateien, Skripte und andere Dateien, die zu einem Programm gehören, einschließlich einer Handvoll Kontrolldateien, die den Kommandozeilentools mitteilen, wie sie das Paket installieren sollen. Die interessantesten Bestandteile eines Debian-Pakets sind die Kontrolldateien, die in einem Verzeichnis namens »DEBIAN« stecken. Die Kontrolldateien teilen dem Paketmanager mit, welche Dateien das Paket enthält, wie es heißt, welche Versionsnummer es hat und so weiter.

Paketbau

Um diesen Prozess zu illustrieren, soll im Folgenden ein einfaches Debian-Beispielpaket entstehen. Es enthält eine einfache Webseite, die der Webserver anzeigt, solange noch keine richtige Anwendung installiert ist. Wenn Sie zum Beispiel zehn neue Instanzen eines Cloud-Node starten, weil Sie in sechs Millionen Tweets erwähnt werden, sollte erst mal eine statische Seite erscheinen, bevor es richtig losgeht.

Legen Sie zum Start ein Verzeichnis »myserver« an und darin weitere Verzeichnisse und die HTML-Datei:

./DEBIAN/
./var/www/index.html

In die Datei »DEBIAN/control« kommt dann der Code aus Listing 1 . Die HTML-Datei »index.html« sieht etwa so aus wie Listing 2 .

Listing 2

index.html

 

Listing 1

Kontrolldatei

 

Gleiche Pfade

Der Pfad der HTML-Seite ist identisch mit dem Speicherort auf dem Server – in Standard-Debian-Installationen legt der Apache-Webserver seine Dateien unterhalb von »/var/www« ab. Wenn Sie also eine Datei irgendwo auf dem Dateisystem des Servers installieren wollen, bauen Sie den Pfad im Paketbauverzeichnis nach. Aus der Verzeichnisstruktur erstellen Sie mit dem folgenden Befehl ein Paket:

dpkg-deb --build myserver
dpkg-deb: building package `myserver' in `myserver.deb'

Klappt alles, finden Sie im Verzeichnis eine Datei namens »myserver.deb« . Bevor Sie das Paket installieren, können Sie sich den Inhalt anzeigen lassen:

dpkg-deb --contents myserver.deb

Die Installation läuft, mit Administrator-Rechten ausgestattet, ebenso einfach ab:

dpkg-deb -i myproject.deb

Nun müsste sich die Datei »index.html« im Webserver-Root befinden.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023