Robotron Datenbank-Software GmbH Firmenlogo
MIT DATEN MEHR BEWEGEN.

Installation

Eine ClusterControl-Instanz kann entweder als System Service oder als Container betrieben werden. Im Folgenden werden die Möglichkeiten des Betriebs und der Konfiguration beschrieben.

Umgebungsvariablen

UmgebungsvariableBeschreibungDefaultwert / Beispiel

RGCC_SERVE_PUBLIC

Gibt an ob die API auch von Außerhalb des ClusterHosts erreichbar sein soll. (0.0.0.0 oder 127.0.0.1)

false

RGCC_SSL_DISABLED

Gibt an ob auch ein Zugriff über TLS möglich sein soll

false

RGCC_PORT

Setzt den Port für die Unverschlüsselte Kommunikation

4000

RGCC_SSL_PORT

Setzt den Port für die Verschlüsselte Kommunikation

4001

RGCC_DATABASE

Optional. Legt Ort und Namen der lokalen Datenbank fest

containers.db

RGCC_DOCKER_SOCKET_URI

Legt den Zugriffspfad für die Verwaltungsschnittstelle fest

unix:///var/run/docker.sock

RGDC_HOST

Optional. Setzt den Hostnamen oder die IP des DeviceCenters

Bsp.: devicecenter.azurewebsites.net

RGDC_PROXY

Optional. Setzt den HTTP Proxy, um auf das DeviceCenter zuzugreifen

RGCC_INSTANCE_RGDC_HOST

Optional. Setzt einen von RGDC_HOST abweichenden Hostnamen / IP des DeviceCenter

Wert von RGDC_HOST

RGCC_INSTANCE_RGDC_PROXY

Optional. Setzt einen von RGDC_PROXY abweichenden HTTP Proxy, um das DeviceCenter zu erreichen.

Wert von RGDC_PROXY

RGDC_SSL_CHECK

Optional. Legt fest, ob die volle PKI-Chain überprüft werden soll, wenn eine verschlüsselte Verbindung zum DeviceCenter aufgebaut werden soll

true

RGCC_CLIENT_ID

Optional. Setzt die vom DeviceCenter erzeugte Client ID

beliebige UUIDv4

RGCC_SECRET

Optional. Setzt den Secret vom DeviceCenter erzeugten Secret

beliebige UUIDv4

RGCC_USER

Legt den Nutzernamen für die Anmeldung fest

ccadmin

RGCC_PASSWORD_HASH

Legt den SHA256 Hash des Passwortes füe die Anmeldung fest.

05f3b8a40c10af15af8c7db56cd5c492e3fca30dd34e607f8da9ba37083543af ($ccpasswd123)

RGCC_INSTANCE_MOUNTS

Kommaseparierte Liste von Volume Mounts, welche zusätzlich in die EdgeContainer integriert werden sollen

Bsp: /host/d1:/container/d1,/host/d2/container/d2

Docker und Docker-Compose unter Debian/Ubuntu

Zuerst muss die Docker Plattform installiert werden

apt install -y docker.io

Mit folgenden Kommando kann ein Container Image importiert werden

docker load -i <file_name>.tar

Anschließend kann beispielsweise im Ordner /opt/robogate-cluster-control eine docker-compose.yml Datei mit folgenden Inhalt erstellt werden:

File: /opt/robogate-cluster-control/docker-compose.yml
version: "3.5"
services:
  rgcc:
    image: rdsdocker.azurecr.io/robogate-cluster-control:2021.05
    container_name: rgcc
    privileged: true
    restart: unless-stopped
    networks:
      rgccnet:
    ports:
        - "80:4000"
    environment:
        - "RGCC_SSL_DISABLED=true"
        - "RGCC_SERVE_PUBLIC=true"
#        - "RGDC_HOST=<DeviceCenter_Host>" # optional
#        - "RGCC_CLIENT_ID=<CLIENT_ID>"    # optional
#        - "RGCC_SECRET=<SECRET>"          # optional
    volumes:
        - "/var/run/docker.sock:/var/run/docker.sock"
        - "/etc/ssl/certs:/etc/ssl/certs:z"

networks:
  rgccnet:
    name: rgccnet
    driver: bridge

Um das ClusterControl zu starten, muss folgender DockerCompose-Befehl ausgeführt werden. Damit wird der Container automatisch als Dienst gestartet, sodass dieser auch nach einem Neutstart des ClusterHosts wieder zur Verfügung steht.

docker-compose up -d

SystemD Service mit der Podman Container Plattform auf RHEL/CentOS

Bei RedHat Distributionen kann es vorkommen, dass die Docker Plattform nicht mehr unterstützt wird. In diesem Fall lässt das ClusterControl ebenfalls als Systemdienst registrieren und betreiben. Im Folgenden ist eine exemplarische Vorgehensweise beschrieben.

Falls noch nicht geschehen, muss Podman zunächst intstalliert werden.

yum install -y podman

Der Podman Socket muss in der Regel separat aktiviert werden. Erst dadurch bekommt das ClusterControl Zugriff auf die Schnittstelle für die Verwaltung der EdgeContainer.

systemctl enable --now podman.socket

Das zur Verfügung gestellte Softwarebundle wird idealerweise nach /opt/Robotron.RoboGate.ClusterControl.Api entpackt. Ein abweichendes Verzeichnis muss in der folgenden SystemD Service-Datei beachtet und angepasst werden.

Die SystemD Service Datei beinhaltet alle notwendigen Informationen und Konfigurationen, um ein ClusterControl zu betreiben.

File: /etc/systemd/system/robogate-cluster-control.service
[Unit]
Description=RoboGate ClusterControl Service

[Service]
User=root
Restart=always
Type=simple
WorkingDirectory=/opt/Robotron.RoboGate.ClusterControl.Api
ExecStart=/bin/bash /opt/Robotron.RoboGate.ClusterControl.Api/start.sh

Environment='RGCC_DOCKER_SOCKET_URI=unix:///run/podman/podman.sock'
Environment='RGCC_SSL_DISABLED=true'
Environment='RGCC_SERVE_PUBLIC=true'
Environment='RGCC_PORT=80'
Environment='RGCC_SSL_PORT=443'
# Environment='RGDC_HOST=<rgdc-host>'       # optional
# Environment='RGCC_CLIENT_ID=<client_id>'  # optional
# Environment='RGCC_SECRET=<secret>'        # optional

[Install]

WantedBy=multi-user.target

Erst nach der Aktivierung durch folgendes Kommando wird der ClusterControl-Dienst ausgeführt und ist auch nach einem Neustart des ClusterHosts wieder verfügbar.

systemctl enable --now robogate-cluster-control

Hilfreiche Kommandos

KommandoBeschreibung

systemctl restart robogate-cluster-control

Den ClusterControl-Service neustarten. Dabei werden keine EdeGateway Instanzen neu gestartet!

systemctl disable --now robogate-cluster-control

Den ClusterControl-Service deaktivieren, falls dieser nicht mehr benötigt wird

Abschließender Hinweis

Es ist wichtig zu beachten, dass auf jedem ClusterHost nur eine ClusterControl-Instanz gleichzeitig ausgeführt werden darf. Falls mehrere ClusterControl Instanzen gleichzeitig aktiv und ggf. mit einem DeviceCenter verbunden sind, kann es zu unerwünschten Effekten kommen, die keinen stabilen Betrieb gewährleisten.