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