OpenTOSCA Setup

OpenTOSCA kann einfach mittels Docker (und Docker-Compose) aufgesetzt werden. Dazu sind lediglich eine Docker-Installation sowie der bereitgestellte Docker-Compose Stack erforderlich.

1. Docker Installation

Bei Docker handelt es sich um eine Operating-System-Virtualisierungslösung (auch Container-Virtualisierung genannt). Docker-Compose ist eine in Python geschriebene CLI-Applikation, die es erlaubt Stacks von Docker Containern zu beschreiben und zu administrieren.

1.1 Linux

Unter Linux sollte Docker aus den bereitgestellten Repositorien installiert werden. Entsprechende Anleitungen finden sich hier:

1.2 MacOS 10.13 und neuer

Unter neueren MacOS Versionen kann Docker als native Applikation installiert werden. Dazu muss lediglich die Docker Desktop Applikation wie gewohnt unter MacOS installiert werden. Der Download findet sich hier:

1.3 Windows 10 Education, Professional & Enterprise

Um Docker unter Windows 10 zu installieren, ist die HyperV-Betriebssystemerweiterung nötig. Diese findet sich nur in den Education, Professional und Enterprise Varianten von Windows 10 und wird bei der Installation von Docker Desktop for Windows automatisch aktiviert. Der Download findet sich hier:

1.4 MacOS & Windows Legacy

Unter älteren Varianten von MacOS und Windows muss eine alternative zur nativen Installation von Docker genutzt werden, die Docker Toolbox. Dabei handelt es sich um die Kombination der Virtualisierungssoftware VMWare, den Docker CLI Tools und boot2docker. Weitere Informationen zur Funktion und zum Aufbau der Docker Toolbox finden sich hier. Die Downloads finden sich hier:

2. OpenTOSCA Installation

OpenTOSCA besteht aus mehreren Komponenten, die zusammengenommen das OpenTOSCA Ökosystem ausmachen. Dazu gehören neben dem Modellierungstool Winery und der UI für den OpenTOSCA Container auch einige Systemkomponenten wie eine Workflow-Engine oder eine Implementation Artifact-Engine. Damit nicht jede Komponente manuell aufgesetzt werden muss, kann ein docker-compose Stack genutzt werden.

Um diesen Stack zu starten, kann wie Folgt vorgegangen werden:

  • Mittels GIT oder per Website eine Kopie dieses Repositoriums anlegen
  • Eine Kommandozeile öffnen und zum heruntergeladenen Ordner navigieren
    (mittels cd <directory> navigieren, wobei cd .. zum Überordner navigiert)
    • Start -> Ausführen -> cmd (Windows)
    • Finder -> Terminal (MacOS/Linux)
  • Den Docker-Compose Stack starten
    • docker-compose up

Wurde dieses Kommando erfolgreich abgesetzt, werden bei der ersten Ausführung alle Docker Images, die im Stack verwendet werden, heruntergeladen und daraufhin als Container gestartet. Bei den darauf Folgenden Ausgaben handelt es sich um die OpenTOSCA Logs. Um den Stack wieder zu stoppen, muss das Kommandozeilenfenster fokussiert sein und die Tastenkombination STRG+C bzw. CTRL+C gedrückt werden, woraufhin eine Rückmeldung über das stoppen der Container angezeigt werden sollte.

Wurde die vorstehende Anleitung korrekt befolgt, sollte die lokale OpenTOSCA-Instanz erfolgreich starten und unter folgenden URLs erreichbar sein:

Um den gesamten Stack und die bisher gespeicherten Daten zu löschen, kann der Befehl docker-compose down genutzt werden. Dabei gehen alle nicht zuvor exportierten Daten verloren!

3. Weitere Anpassungen

3.1 Hosts-Datei (MacOS/Windows)

Die Konfiguration von OpenTOSCA, wie sie durch den eingesetzten docker-compose Stack vorgenommen wird, geht davon aus, dass die Domain *.localhost.localdomain auf das Loopback-Interface, d.h. den lokalen Computer zeigt. Dies ist unter allen neueren Linux-Umgebungen der Fall, muss jedoch im Fall von MacOS und Windows manuell konfiguriert werden.

Linux, MacOS und Windows bieten einen gemeinsamen Standard um lokale Hostnamen an IPs zu binden, die sog. Hosts-Datei. Im Fall von Linux und MacOS findet diese Datei sich unter /etc/hosts, unter Windows im Verzeichnis Windows\System32\drivers\etc\hosts. Diese Datei kann nur mit Administrator-Rechten bearbeitet werden.

Sollte es nötig sein, Anpassungen an der Hosts-Datei vorzunehmen, so muss die folgende Zeile hinzugefügt werden:

  • 127.0.0.1 api.localhost.localdomain ui.localhost.localdomain winery.localhost.localdomain

Ist anstelle einer nativen Variante die Docker Toolbox im Einsatz, so muss anstelle der oberen Zeile die Folgende der Hosts-Datei hinzugefügt werden:

  • 192.168.99.100 api.localhost.localdomain ui.localhost.localdomain winery.localhost.localdomain

4. CSARs & OpenTOSCA Updates

4.2 Cloud Service Archives (CSAR)

Sobald TOSCA-Element (NodeTypes, ServiceTemplates, etc.) in der Winery angelegt wurden, können diese als sogenannte CSARs (Cloue Service Archives) exportiert und in eine andere Winery importiert werden. Somit lassen sich modellierte Objekte einfach übertragen und bspw. in Ilias ablegen. Sobald diese Objekte in das zentrale DCH Repositorium eingepflegt wurden, stehen sie für alle Benutzer zur Verfügung. Dafür muss jedoch einmalig der OpenTOSCA Docker-Compose Stack gelöscht und neu erstellt werden. Das Vorgehen dabei entspricht der vorstehenden Anleitung (siehe 4.2), jedoch muss der Zwischenschritt zum herunterladen neuer OpenTOSCA Docker Images nicht durchgeführt werden.

4.2 OpenTOSCA Updates

OpenTOSCA wird hier mittels Docker-Compose auf dem lokalen Gerät betrieben. Dafür werden alle OpenTOSCA Docker Images benötig, die beim ersten Starten des Docker-Compose Stacks automatisch heruntergeladen werden. Werden Updates der verschiedenen OpenTOSCA Docker Images bereitgestellt, müssen diese manuell heruntergeladen werden und daraufhin der OpenTOSCA Docker-Compose Stack gelöscht und neu aufgesetzt werden. Das Vorgehen dabei sieht wie Folgt aus:

  • Sofern bereits TOSCA-Elemente modelliert wurden, diese als CSARs exportieren
    • Achtung, alle nicht exportierten Elemente werden im Verlauf dieser Schritte gelöscht!
  • In einer Kommandozeile zum opentosca-docker-dch Ordner navigieren (siehe 2.)
  • Den OpenTOSCA Docker-Compose Stack löschen
    • docker-compose down
  • Die neuen OpenTOSCA Docker Images herunterladen
    • docker-compose pull
  • Den OpenTOSCA Docker-Compose Stack unter Verwendung der aktualisierten Docker Images neu starten
    • docker-compose up

5. Mögliche Fehler

5.1 Allgemein

  • Einfrieren des OpenTOSCA Startvorgangs
    Dieser Fehler wird mitunter durch unzureichende Speicherallokation ausgelöst. Um dies zu beheben, muss die Menge des Arbeitsspeichers, welcher für Docker reserviert wird, erhöht werden. Dies geschieht im Falle von Docker Desktop in den erweiterten Einstellungen und im Falle der Docker Toolbox per Docker Machine. Für weitere Informationen siehe:
  • Cannot connect to the Docker daemon
    Cannot connect to the Docker daemon at [...]. Is the docker daemon running?
    Dieser Fehler tritt auf, wenn das Docker CLI keine Verbindung zum Docker Daemon aufnehmen kann. Ursache für diesen Fehler kann sein, dass der Docker Daemon nicht gestartet ist oder im Falle der Docker Toolbox die Konfiguration der Docker CLI nicht korrekt ist. Sollte die Docker Toolbox zum Einsatz kommen, kann mittels docker -H 192.168.99.100 info überprüft werden, ob die CLI Konfiguration geladen wurde (falls das Kommando erfolgreich ist) oder der Docker Daemon nicht gestartet ist (falls das Kommando fehlschlägt).

5.2 Windows

  • Error with pre-create check (Docker Toolbox)
    Error with pre-create check: "This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. [...]"
    Looks like something went wrong in step 'Checking if machine default exists'...
    Press any key to continue...

    Dieser Fehler tritt auf, wenn die HyperV-Betriebssystemerweiterung aktiviert ist und die Docker Toolbox zum Einsatz kommt. Ursprung des Fehlers ist die Inkompatibilität zwischen HyperV und VMWare. In diesem Fall sollte anstelle der Docker Toolbox auf Docker Desktop for Windows zurückgegriffen werden (siehe 1.3).

5.3 MacOS

  • 100% Systemauslastung durch HyperKit (Docker Desktop)
    Diesen Fehler haben wir auf einigen Testsystemen beobachten können. Nach mehreren Systemupdates sowie der Neuinstallation von Docker Desktop for Mac konnte der Fehler nicht mehr beobachtet werden.