//Cloudogu EcoSystem Docs

Konfigurieren eines Portainer-Endpoints via Dogu-Config

In diesem Artikel wird beschrieben wie Portainer-Endpoints beim Start automatisch in Portainer hinzugefügt werden können.

Vorbereitung des Host-Rechners

Es gibt verschiedene Möglichkeiten, Portainer Zugriff auf Docker zu geben. Die präferierte Möglichkeit ist hierbei das Starten eines Portainer-Agents. Eine andere Möglichkeit ist das direkte Freigeben der Docker-API.

Portainer-Agent

Auf dem Host-Rechner (nicht in der VM) muss ein Agent als Docker-Container mit dem folgenden Befehl gestartet werden:

docker run -d \
  -p 9001:9001 \
  --name portainer_agent \
  --restart=always \
  -e LOG_LEVEL=DEBUG \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  portainer/agent:2.21.2

Docker-API

Die Docker-API muss auf dem Host-Rechner freigegeben werden. Dies kann mit dieser Anleitung konfiguriert werden.

Erstellen der Dogu-Konfiguration

Damit der Agent automatisch beim Portainer-Start erkannt und hinzugefügt wird, muss dieser als JSON Konfiguration in der Dogu-Config abgelegt werden. Im Cloudogu EcoSystem 'Classic' kann der Eintrag manuell für den Schlüssel endpoint_configuration per etcdctl gesetzt werden oder mithilfe von cesapp edit-config portainer konfiguriert werden.

Folgendes Beispiel konfiguriert die oben beschriebenen Endpunkte, wenn Portainer in der EcoSystem-VM läuft und die Endpunkte auf dem Host-Rechner:

[
  {
    "Name":"ExampleAgent",
    "EndpointURL":"192.168.56.1:9001",
    "EndpointType": "AGENT"
  },
  {
    "Name":"ExampleEndpoint",
    "EndpointURL":"192.168.56.1:2375",
    "EndpointType": "API"
  }
]

Die Konfiguration muss dem folgenden JSON-Format entsprechen:

[
    {
        "Name":"NAME",
        "EndpointURL":"ENDPOINTADDRESS:PORT",
        "EndpointType": "AGENT"
    },
    {
        "Name":"ExampleAgent",
        "EndpointURL":"123.23.3.1:9001",
        "EndpointType": "AGENT"
    },
    {
        "Name":"ExampleEndpoint",
        "EndpointURL":"123.23.3.1:2375",
        "EndpointType": "API"
    },
    {
        "Name":"ExampleEndpointWithTls",
        "EndpointURL":"123.23.3.1:2375",
        "EndpointType": "API",
        "TLS": "true"
    }
]

Name: Der Name der für den Endpunkt in Portainer angezeigt wird. Dieser kann frei gewählt werden.

ENDPOINTADDRESS: Die FQDN oder IP der zu verwaltenden Maschine.

PORT: Der Port des Portainer Agenten (Standard: 9001)

EndpointURL: Die URL zum Endpunkt

EndpointType (optional => default 'AGENT'): Die Art des Endpoints. Erlaubt sind AGENT oder API.

TLS (optional => default 'true' bei AGENT und 'false' bei API): Definiert, ob beim Endpunkt TLS aktiviert ist. Ist automatisch immer auf 'true' beim Typ 'AGENT'. Erlaubte Werte: true | false

Aktualisierung der Endpunkte

Damit die Änderungen von Portainer erkannt werden muss das Dogu neu gestartet werden.

docker restart portainer