Verwendung von ASCII-Vorlagen für dynamische Container-Konfigurationen

Prev Next

INSYS icom Router unterstützen das Ausführen von Linux-Containern (LXC), in denen persistente Verzeichnisse wie /data/etc/ eingebunden werden können. Diese Verzeichnisse dienen typischerweise dazu, .ini-Dateien, Lua-Skripte oder andere Konfigurationsdateien zu speichern, die die Anwendung im Container benötigt.

Mit dem neuen Vorlagentyp „Container-Konfiguration“ innerhalb der ASCII-Vorlagen können Sie:

  • Konfigurationen für unterschiedliche Umgebungen (z. B. Entwicklung, Test, Produktion) verwalten

  • Gerätespezifische Werte über benutzerdefinierte Felder oder Inline-Parameter einsetzen

  • Konfigurationen konsistent und effizient auf mehrere Geräte ausrollen

Dieser Vorlagentyp funktioniert ähnlich wie bestehende ASCII-Vorlagen, ist jedoch speziell für die Konfiguration von Container-Anwendungen vorgesehen.


Funktionsweise

Die Container-Konfigurationsvorlage erzeugt eine Datei im Pfad /data/etc/ innerhalb des Containers. Die Anwendung im Container liest diese Datei ein, um sich entsprechend zu konfigurieren (z. B. beim Start oder bei Änderungen an der Datei).

Unterstützte Inhalte in der Vorlage:

  • Key/Value-Paare im .ini-Format

  • Lua-Skripte

  • Platzhalter ({{parameter_name}}) für dynamische Werte

Hinweis: Aktuell werden nur Inline-Parameter vom Typ "String" unterstützt. Alle referenzierten benutzerdefinierten Felder müssen vor dem Deployment befüllt sein.


Schritt-für-Schritt-Anleitung

1. Erstellen der Container-Konfigurationsvorlage

  1. Navigieren Sie zu Inventar → ASCII-Vorlagen

  2. Klicken Sie auf „+“ oder wählen Sie „Hinzufügen“ im Menü „Aktion wählen“

  3. Wählen Sie im Dialogfenster den Typ „Container-Konfiguration“

  4. Vergeben Sie einen eindeutigen Namen für die Vorlage

  5. Geben Sie den Container-Bezeichner an. Diesen finden Sie in der WebUI des Routers unter “Container”

    Wichtig!

    Dieser muss exakt dem Bezeichner des Containers auf den Zielroutern entsprechen. Bei Abweichungen schlägt das Update fehl.

  6. Definieren Sie den Dateinamen, z. B. config.ini, der im Container gespeichert werden soll

  7. Geben Sie den gewünschten Inhalt im .ini- oder Lua-Format ein und verwenden Sie bei Bedarf Platzhalter


2. Umgang mit Parametern

  • Verwenden Sie Platzhalter wie {{env}}, {{mode}} etc.

  • Entscheiden Sie, welche Werte als Inline-Parameter (String) und welche über benutzerdefinierte Felder bereitgestellt werden

  • Stellen Sie sicher:

    • Inline-Parameter werden vor der Ausführung pro Gerät eingegeben

    • Benutzerdefinierte Felder sind auf allen Zielgeräten korrekt ausgefüllt


3. Speichern und Anwenden

  1. Klicken Sie auf „Speichern“

  2. Optional: Wählen Sie direkt im Editor „Auf Router anwenden“ im Dropdown-Menü
    Alternativ später aus der ASCII-Vorlagen-Übersicht anwenden

  3. Wählen Sie die gewünschten Router oder Routergruppen aus und klicken Sie auf „Weiter“


4. Parameterwerte eingeben

Es erscheint eine Vorschautabelle mit einer Zeile pro Zielgerät inklusive:

  • Gerenderter Konfigurationsdatei

  • Eingabefelder für benötigte Parameter

💡 Tipp: Laden Sie die Beispiel-Excel-Datei herunter, füllen Sie die Parameter aus, und laden Sie die Datei wieder hoch. So können Werte effizient für viele Geräte bereitgestellt werden.


5. Update-Job finalisieren

  1. Klicken Sie auf „Weiter“

  2. Vergeben Sie einen aussagekräftigen Namen für den Update-Job oder verwenden Sie den vorgegebenen Namen

  3. Wählen Sie, ob die Konfiguration sofort („Sofort“) oder später („Später“) ausgeführt werden soll

  4. Verfolgen Sie den Status des Update-Jobs unter Update → Update-Jobs


Best Practices

  • Klare Benennung: z. B. prod_app_config, dev_app_config

  • Parameterstrategie: Benutzerdefinierte Felder für Gerätedaten (z. B. standort, kunden_id), Inline-Parameter für dynamische Kontexte

  • Einheitliche Container-Bezeichnung: Einheitliche Namenskonventionen für Container auf allen Geräten sicherstellen

  • Tests: Konfiguration auf einem Testgerät prüfen, bevor Massen-Deployment erfolgt


Bekannte Einschränkungen

  • Nur String-Parameter als Inline-Parameter unterstützt

  • Mismatches bei Container-Bezeichnung oder fehlende Parameterwerte führen zum Fehlschlag des Update-Jobs

  • Keine Formatvalidierung der Inhalte – sicherstellen, dass Ihre Anwendung die Datei korrekt verarbeitet