Zum Inhalt springen
Deploy
Dokumentation durchsuchen

Rezepte: Bash-Skripte auf mehreren Servern ausführen

Speichere Bash-Skripte als Rezepte und führe sie auf einem oder mehreren Servern zugleich aus, als root oder Server-Benutzer, mit Variablen und E-Mail-Bericht.

Als Markdown ansehen Aktualisiert am 7. Oktober 2026

Ein Rezept ist ein gespeichertes Bash-Skript, das du auf einem oder mehreren deiner Server ausführst. Nutze Rezepte für wiederkehrende Arbeit, etwa ein Tool installieren, Festplattenplatz freiräumen, Logs rotieren oder eine Einstellung auf jedem Server prüfen. Du schreibst das Skript einmal, und die Organisation kann es jederzeit auf jedem aktiven Server ausführen.

Jede Ausführung startet pro Server einen Hintergrund-Task, sodass du die Ausgabe jedes Servers einzeln verfolgen kannst. Rezepte gehören der Organisation: Jedes Mitglied sieht sie, und Mitglieder mit der Rolle Developer oder höher können sie anlegen, ändern und ausführen.

Die Rezeptseite mit gespeicherten Rezepten und den letzten Ausführungen pro Server
Rezepte einer Organisation

Ein Rezept anlegen

  1. Öffne Rezepte in der oberen Navigation der Organisation.
  2. Klicke auf Neues Rezept.
  3. Gib einen Name ein, zum Beispiel „htop installieren“.
  4. Wähle unter Ausführen als entweder root oder Server-Benutzer (der Benutzer, dem die Sites auf dem Server gehören).
  5. Schreibe das Skript im Editor. Es läuft mit bash, du kannst es also genau so schreiben wie in einem Terminal.
  6. Klicke auf Rezept speichern.

Das Rezept erscheint jetzt in der Liste, mit der ersten Zeile seines Skripts, dem Benutzer, als der es läuft, und wann es zuletzt lief.

Beispiel: ein Tool auf jedem Server installieren

apt-get update
apt-get install -y htop ncdu

Führe das als root aus. Befehle, die root brauchen, wie apt-get, schlagen fehl, wenn das Rezept als Server-Benutzer läuft.

Variablen in einem Rezept verwenden

Ein Rezept kann Variablen in doppelten geschweiften Klammern enthalten. Kurz bevor das Skript läuft, ersetzt Vimonto Deploy sie durch die Werte des Servers, auf dem es läuft. Der Editor listet sie unter Variablen, pro Server ausgefüllt.

Variable Wert
{{server_id}} Die ID des Servers in Vimonto Deploy.
{{server_name}} Der Name des Servers.
{{server_type}} Der Servertyp, etwa app oder database.
{{ip_address}} Die öffentliche IP-Adresse.
{{private_ip_address}} Die private IP-Adresse, falls vorhanden; sonst leer.
{{user}} Der eigene Benutzer des Servers.
{{db_password}} Das Datenbankpasswort, solange Vimonto Deploy es für den Server noch aufbewahrt.

Variablen mit Namen, die nicht in dieser Liste stehen, bleiben so, wie du sie geschrieben hast.

Beispiel:

echo "Cleaning up on {{server_name}} ({{ip_address}})"
du -sh /home/{{user}}/*

Ein Rezept ausführen

  1. Klicke neben dem Rezept auf Ausführen.
  2. Wähle unter Server jeden Server aus, auf dem es laufen soll. Die Liste zeigt die Server, auf die du Zugriff hast; nur aktive Server lassen sich auswählen.
  3. Lass Bericht per E-Mail senden an, wenn du eine E-Mail möchtest, sobald jeder Server fertig ist, mit den letzten Ausgabezeilen jedes Servers. Schalte es aus, wenn du sie nicht brauchst.
  4. Klicke auf Rezept ausführen.

Das Rezept startet auf jedem ausgewählten Server gleichzeitig, jeweils als eigener Task. Du kannst die Seite verlassen; die Ausgabe findest du unter Aktivität.

Sobald jeder Server fertig ist, bekommst du die Benachrichtigung Rezept fertig in der Glocke (und per E-Mail, wenn du das eingeschaltet hast). Nur die Person, die die Ausführung gestartet hat, bekommt sie. Siehe Benachrichtigungen.

Eine Ausführung verfolgen und die Ausgabe lesen

Die Liste Letzte Ausführungen unten auf der Rezeptseite zeigt die letzten zehn Ausführungen, mit wer sie gestartet hat und wann. Jeder Server einer Ausführung hat einen eigenen Chip mit seinem Status. Klicke auf einen Server, um seinen Task zu öffnen und die vollständige Ausgabe zu lesen. Ein Mitglied, das auf die Server seiner Teams beschränkt ist, sieht nur Ausführungen auf diesen Servern und in jeder Ausführung nur seine Server.

Eine Ausführung auf einem Server schlägt fehl, wenn das Skript mit einem anderen Exit-Code als 0 endet. Der Task nennt dann den Exit-Code, mit dem das Rezept aufgehört hat. Beginne dein Skript mit set -e, wenn es beim ersten fehlschlagenden Befehl stoppen soll.

Ein Rezept kann pro Server bis zu etwa einer Stunde laufen. Längere Skripte werden gestoppt.

Ein Rezept aus einem Skript oder aus CI ausführen

Die API listet die Rezepte der Organisation auf (GET /api/v1/orgs/{organization}/recipes) und führt eines auf einer Liste von Servern aus (POST /api/v1/orgs/{organization}/recipes/{recipe}/run), mit einem Token, der den Bereich Schreiben hat. Jeder Server bekommt seinen eigenen Task, den du ebenfalls über die API verfolgen kannst.

Ein Rezept bearbeiten oder löschen

Öffne das Menü neben dem Rezept und wähle:

  • Bearbeiten, um Name, Benutzer oder Skript zu ändern. Frühere Ausführungen behalten das Skript, mit dem sie liefen.
  • Löschen, um das Rezept für alle in der Organisation zu entfernen. Frühere Ausführungen bleiben in der Aktivität.

Wer kann Rezepte verwenden?

Jedes Mitglied kann die Rezepte und ihre Ausführungen sehen. Zum Anlegen, Bearbeiten, Ausführen und Löschen von Rezepten brauchst du die Rolle Owner, Administrator, Manager oder Developer. Siehe Mitglieder und Rollen. Wenn deine Organisation Teams nutzt, kannst du ein Rezept nur auf den Servern ausführen, auf die deine Teams dir Zugriff geben.

Häufige Fragen

Kann ich ein Rezept auf allen meinen Servern gleichzeitig ausführen?

Ja. Wähle beim Starten der Ausführung jeden Server in der Liste Server aus. Jeder Server bekommt seinen eigenen Task, und sie laufen gleichzeitig.

Was ist der Unterschied zwischen root und dem Server-Benutzer?

root darf auf dem Server alles, etwa Pakete installieren und Systemeinstellungen ändern. Der Server-Benutzer ist der Benutzer, dem deine Sites gehören und der deine Deploys ausführt; nutze ihn für Arbeit in den Verzeichnissen deiner Sites, damit Dateien den richtigen Eigentümer behalten.

Kann ich dasselbe Rezept zweimal gleichzeitig auf einem Server ausführen?

Ja. Vimonto Deploy hindert dich nicht daran, ein Rezept auf einem Server auszuführen, auf dem noch ein anderes Rezept läuft. Sei also vorsichtig mit Skripten, die sich nicht überschneiden sollen.

Wie lange werden Rezept-Ausführungen aufbewahrt?

Ausführungen und ihre Ausgabe werden 90 Tage aufbewahrt, wie andere Aktivität.

Kann ich einmalige Befehle ausführen, ohne ein Rezept zu speichern?

Nutze für einmalige Befehle auf einem einzelnen Server das Browser-Terminal.