- Jelina-Überblick
- JelinaOS
- Referenzmaterial
docker-compose-Kompatibilität und Erweiterungen
JelinaOS bietet sofort nutzbare Container-Orchestrierung: Die Syntax von docker-compose 2.x wird vollständig unterstützt, die Orchestrierung erfolgt einheitlich über Cloud-Releases oder lokale Verwaltungsschnittstellen, und der Geräteagent führt die Bereitstellung automatisch aus. Darauf aufbauend erweitert JelinaOS die deklarative Verwaltung auf nicht containerisierte Anwendungen (ProgramSet), sodass auch klassische Programme durch Konfiguration verwaltet werden können.
Ausführung der Orchestrierung
Abschnitt betitelt „Ausführung der Orchestrierung“Eine Orchestrierungsdatei ist eine deklarative Konfiguration: Sie wird in einem Cloud-Release oder über die lokale Verwaltungsschnittstelle definiert, vom Geräteagenten synchronisiert und automatisch bereitgestellt. Auf dem Gerät stehen Docker-Befehle für alltägliche Aufgaben an einzelnen Containern zur Verfügung. Die Orchestrierung mehrerer Dienste übernimmt zentral der Geräteagent; zusätzliche Orchestrierungswerkzeuge müssen auf dem Gerät nicht installiert werden.
Compose-Kompatibilität
Abschnitt betitelt „Compose-Kompatibilität“Die Compose-Unterstützung von JelinaOS basiert auf der Spezifikation 2.x und ermöglicht eine reibungslose Übernahme gängiger Orchestrierungsdateien:
- Unterstützt werden übliche Konfigurationen wie Dienstdefinitionen, Netzwerke, Volumes, Umgebungsvariablen und Abhängigkeiten;
- Mit Version 2.x eingeführte Felder und Verhaltensweisen sind kompatibel;
- In 3.x neu eingeführte Felder werden nicht unterstützt. Verwenden Sie bei der Migration die Syntax von 2.x.
version: "2.4"
services: app: image: myapp:1.0.0 restart: always environment: MODE: production ports: - "8080:80"
worker: image: myworker:1.0.0 restart: on-failure depends_on: - appNicht containerisierte Anwendungen: deklarative Verwaltung mit ProgramSet
Abschnitt betitelt „Nicht containerisierte Anwendungen: deklarative Verwaltung mit ProgramSet“In industriellen Anlagen laufen viele Programme auf klassische Weise: Skripte, Daemons und Binärprogramme von Drittanbietern. JelinaOS integriert sie in ein einheitliches deklaratives Verwaltungssystem. Die Konfigurationsfelder entsprechen direkt den Funktionen von Systemdiensten, was den Einstieg erleichtert und umfassende Verwaltungsmöglichkeiten bietet.
Einfaches Beispiel
Abschnitt betitelt „Einfaches Beispiel“programs: myapp: command: run.sh # Startbefehl running: true # Ausführung aktiviert restart: always # Neustartrichtlinie environment: # Umgebungsvariablen MODE: production working_directory: . # Arbeitsverzeichnis user: root # Benutzer für die Ausführung pid_file: /var/run/myapp.pidUnterstützte Konfigurationsfelder
Abschnitt betitelt „Unterstützte Konfigurationsfelder“| Feld | Bedeutung | Beschreibung |
|---|---|---|
command |
Startbefehl | Erforderlich; Einstiegspunkt des Programms |
running |
Ausführung aktiviert | Standardwert: true |
restart |
Neustartrichtlinie | no / on-success / on-failure / on-abnormal / on-watchdog / on-abort / always |
environment |
Umgebungsvariablen | Schlüssel-Wert-Paare |
kill_signal |
Stoppsignal | Signal, das beim Beenden des Programms gesendet wird |
working_directory |
Arbeitsverzeichnis | Verzeichnis, in dem das Programm ausgeführt wird |
type |
Diensttyp | simple / forking / oneshot / dbus / notify / idle |
user / group |
Ausführungsidentität | Ausführung als angegebener Benutzer bzw. angegebene Gruppe |
pid_file |
PID-Datei | Speichert die Prozess-ID |
wants / requires |
Abhängigkeiten | Schwache / starke Abhängigkeit |
before / after |
Startreihenfolge | Start vor bzw. nach dem angegebenen Dienst |
conflicts |
Gegenseitiger Ausschluss | Schließt den gleichzeitigen Betrieb mit dem angegebenen Dienst aus |
start_limit_interval_sec / start_limit_burst |
Neustartbegrenzung | Maximale Anzahl von Neustarts innerhalb des angegebenen Zeitfensters |
start_limit_action |
Aktion bei Grenzüberschreitung | Beispielsweise none, reboot oder poweroff |
remain_after_exit |
Nach Beendigung aktiv bleiben | Verhindert wiederholte Starts |
exec_start_pre / exec_start_post |
Vor- und nachgelagerte Befehle | Befehle, die vor bzw. nach dem Start ausgeführt werden |
Erweiterungen für Service-Units
Abschnitt betitelt „Erweiterungen für Service-Units“ProgramSet unterstützt auch erweiterte Konfigurationen auf Ebene der System-Units, beispielsweise Startabhängigkeiten und Bedingungsprüfungen:
programs: myapp: command: run.sh restart: always Install: WantedBy: multi-user.target # Beim Systemstart automatisch starten Unit: ConditionPathExists: /data/app/config.json # Bedingung prüfenAnwendungsbeispiel: gemischte Orchestrierung
Abschnitt betitelt „Anwendungsbeispiel: gemischte Orchestrierung“version: "2.4"
services: # Containerisierte Anwendung web: image: myweb:1.0.0 restart: always
programs: # Klassisches Erfassungsprogramm collector: command: collector --config /data/collector.conf restart: on-failure after: webContaineranwendungen und native Programme arbeiten innerhalb desselben Orchestrierungssystems zusammen. Abhängigkeiten, Startreihenfolge und Neustartrichtlinien werden einheitlich verwaltet – darin liegt der besondere Nutzen der Anwendungsverwaltung von JelinaOS.