OPSI Docker - zweiter Depotserver

Antworten
me-sp
Beiträge: 11
Registriert: 26 Jan 2023, 09:11

OPSI Docker - zweiter Depotserver

Beitrag von me-sp »

Hallo,

hat jemand Opsi als Docker Container laufen und verwendet einen zweiten Depotserver?

Wir möchten gerne zwei Depotserver verwenden, um Windows und Linux Clients zu trennen.

Die docker-compose.yml habe ich von https://github.com/opsi-org/opsi-docker ... ompose.yml mit zwei weiteren Containern (opsi depotserver und redis) erweitert:

Code: Alles auswählen


x-restart-policy: &restart-policy
  restart: unless-stopped

x-common-variables: &common-variables
  TZ: Europe/Berlin

x-common-mysql-variables: &common-mysql-variables
  MYSQL_DATABASE: opsi
  MYSQL_USER: opsi
  MYSQL_PASSWORD: XXXXXXXX

x-common-redis-variables: &common-redis-variables
  REDIS_PASSWORD: XXXXXXXX

x-common-grafana-variables: &common-grafana-variables
  GF_SECURITY_ADMIN_USER: admin
  GF_SECURITY_ADMIN_PASSWORD: XXXXXXXX

services:
  mysql:
    image: mariadb:10.7
    <<: *restart-policy
    command: --max_connections=1000 --max_allowed_packet=256M --sort_buffer_size=4M
    environment:
       <<: [*common-variables, *common-mysql-variables]
       MYSQL_ROOT_PASSWORD: XXXXXXXX
       MYSQL_INITDB_SKIP_TZINFO: 1
    volumes:
      - /opt/docker/opsi/config-server/mysql:/var/lib/mysql

  redis:
    image: redislabs/redistimeseries:latest
    <<: *restart-policy
    command: sh -c "redis-server --requirepass $$REDIS_PASSWORD --loadmodule /usr/lib/redis/modules/redistimeseries.so"
    environment:
      <<: [*common-variables, *common-redis-variables]
    volumes:
      - /opt/docker/opsi/config-server/redis:/data

  grafana:
    image: grafana/grafana:latest
    <<: *restart-policy
    environment:
      <<: [*common-variables, *common-grafana-variables]
      GF_INSTALL_PLUGINS: grafana-simple-json-datasource
      GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s:%(http_port)s/grafana"
    volumes:
      - /opt/docker/opsi/config-server/grafana:/var/lib/grafana
      
  opsi-server:
      image: uibmz/opsi-server:4.2
      #build: .
      <<: *restart-policy
      depends_on:
      - mysql
      - redis
      ports:
      - "4447:4447"
      - "69:69/udp"
      hostname: opsi-server
      domainname: domain.tld
      environment:
      <<: [*common-variables, *common-mysql-variables, *common-grafana-variables, *common-redis-variables]
      MYSQL_HOST: mysql
      REDIS_HOST: redis
      GRAFANA_HOST: grafana
      OPSI_ADMIN_PASSWORD: XXXXXXXX
      OPSI_ROOT_PASSWORD: XXXXXXXX
      # configserver / depotserver
      OPSI_HOST_ROLE: configserver
      # Run tftp server and opsipxeconfd? ("true"/"false")
      OPSI_TFTPBOOT: "true"
      # OPSI_SERVICE_ADDRESS and OPSI_HOST_KEY is needed for depotserver role only
      #OPSI_SERVICE_ADDRESS:
      #OPSI_HOST_KEY:
      # opsconfd config
      OPSICONFD_GRAFANA_EXTERNAL_URL: /grafana
      OPSICONFD_LOG_LEVEL: 6
      OPSICONFD_LOG_LEVEL_FILE: 4
      volumes:
      - /opt/docker/opsi/config-server/opsi:/data

  redis-linux-depot:
      image: redislabs/redistimeseries:latest
      command: sh -c "redis-server --requirepass $$REDIS_PASSWORD --loadmodule /usr/lib/redis/modules/redistimeseries.so"
      environment:
      REDIS_PASSWORD: XXXXXXXX
      volumes:
      - /opt/docker/opsi/depot-linux/redis:/data

  opsi-linux-depot:
      image: uibmz/opsi-server:4.2
      #build: .
      <<: *restart-policy
      depends_on:
      - opsi-server
      - redis-linux-depot
      ports:
      - "4448:4447"
      hostname: opsi-linux-depot
      domainname: domain.tld
      environment:
      <<: [*common-variables]
      REDIS_HOST: redis-linux-depot
      REDIS_PASSWORD: XXXXXXXXXX
      OPSI_ADMIN_PASSWORD: XXXXXXXXXX
      OPSI_ROOT_PASSWORD: XXXXXXXXXX
      # configserver / depotserver
      OPSI_HOST_ROLE: depotserver
      # Run tftp server and opsipxeconfd? ("true"/"false")
      OPSI_TFTPBOOT: "false"
      # OPSI_SERVICE_ADDRESS and OPSI_HOST_KEY is needed for depotserver role only
      OPSI_SERVICE_ADDRESS: "IP-opsi-server:4447"
      OPSI_HOST_KEY: "XXXXXXXXXXXXXXX"
      # opsconfd config
      OPSICONFD_LOG_LEVEL: 6
      OPSICONFD_LOG_LEVEL_FILE: 4
      volumes:
      - /opt/docker/opsi/depot-linux/opsi:/data


Wenn der opsi-linux-depot container startet kommen folgende Fehlermeldung in den Logs:

Code: Alles auswählen

opsi-opsi-server-1        | [4] [2023-03-08 14:40:36.166] [172.24.0.1] Backend authentication error: No username specified   (session.py:293)
opsi-opsi-linux-depot-1   | [4] [2023-03-08 14:40:36.372] [               ] Failed to setup backend: Backend authentication error: Authentication error 
(error on server)
opsi-opsi-linux-depot-1   | [4] [2023-03-08 14:40:36.698] [               ] Warning 'unclosed <ssl.SSLSocket fd=4, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('172.24.0.7', 47572), raddr=('10.10.10.20', 4447)>' in file 'opsicommon/client/jsonrpc.py', line 246   (logging.py:848)
Was muss bei der OPSI_SERVICE_ADDRESS angegeben werden?
Bei OPSI_HOST_KEY ist der opsiHostKey des Configserver gemeint oder?

Ich habe schon unterschiedliche OPSI_SERVICE_ADDRESS Einträge probiert, leider kommt immer der oben genannte Fehlermeldung.

LG Markus
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2045
Registriert: 29 Mai 2008, 15:14

Re: OPSI Docker - zweiter Depotserver

Beitrag von j.schneider »

Hallo,

als OPSI_SERVICE_ADDRESS muss die URL des opsi-Services verwendet werden, z.B. https://configserver.domain.tld:4447
Der OPSI_HOST_KEY muss der Host-Key des Depots sein.
Das bedeutet, dass das Depot beim Starten des Containers im Backend schon existieren muss.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


me-sp
Beiträge: 11
Registriert: 26 Jan 2023, 09:11

Re: OPSI Docker - zweiter Depotserver

Beitrag von me-sp »

Danke j.schneider

Damit wir den OPSI_HOST_KEY erhalten, haben wir im zweiten Depotserver die Registrierung mit

Code: Alles auswählen

opsi-setup --register-depot --unattended '{"address": "config.server.address:4447/rpc", "username": "adminuserinopsi", "password": "pwoftheuser"}'
und anschließend den OPSI_HOST_KEY in die docker-compose.yml eingetragen.

In der entrypoint.sh des Docker Containers (https://github.com/opsi-org/opsi-docker ... int.sh#L65) haben wir gesehen, dass auch die Variable OPSI_HOST_ID verwendet wird, daher haben wir auch diese in die docker-compose.yml

Code: Alles auswählen

OPSI_HOST_ID: "id-linux-depot"
für das zweite Depot eingetragen.

Im opsi config editor haben wir anschließend für das zweite Depot diese zwei Einträge (Port von 4447 auf 4448) geändert:

Code: Alles auswählen

depotWebDavUrl: webdavs://opsi-linux-depot.tld:4448/depot
repositoryRemoteUrl: webdavs://opsi-linux-depot.tld:4448/repository
Opsi Pakete können aber nur direkt am zweiten Depot installiert werden. Wenn ein Paket über den opsi-config server installiert wird kommt folgende Fehlermeldung:

Code: Alles auswählen

root@opsi-server:/var/lib/opsi/workbench# opsi-package-manager -d opsi-linux-depot.tld -i opsi-linux-client-agent_4.2.0.31-1.opsi
Errors occurred: 
   Failure while processing Install of package(s) /data/lib/workbench/opsi-linux-client-agent_4.2.0.31-1.opsi on depot 'opsi-linux-depot.tld':
      Opsi rpc error: Backend I/O error: Failed to get md5sum: [Errno 2] No such file or directory: '/var/lib/opsi/repository/opsi-linux-client-agent_4.2.0.31-1.opsi' (error on server)

ERROR: Failed to process command 'install': 1 errors during the processing of tasks.
Was könnte hier das Problem sein? Das Opsi Paket wurde per opsi-package-manager vom opsi-server nach opsi-linux-depot:/var/lib/opsi/repository/opsi-linux-client-agent_4.2.0.31-1.opsi hochgeladen

LG Markus
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2045
Registriert: 29 Mai 2008, 15:14

Re: OPSI Docker - zweiter Depotserver

Beitrag von j.schneider »

Wie sieht die Fehlermeldung im opsiconfd.log des Depots aus?


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


me-sp
Beiträge: 11
Registriert: 26 Jan 2023, 09:11

Re: OPSI Docker - zweiter Depotserver

Beitrag von me-sp »

Im zweiten Depot steht in den Logs leider keine Meldung, aber am Config-Server/ersten Depot steht in opsiconfd/172.29.0.1.log:

Code: Alles auswählen

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiconfd/application/jsonrpc.py", line 561, in process_rpcs
  File "opsiconfd/application/jsonrpc.py", line 532, in process_rpc
  File "starlette/concurrency.py", line 39, in run_in_threadpool
  File "anyio/to_thread.py", line 31, in run_sync
  File "anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
  File "anyio/_backends/_asyncio.py", line 867, in run
  File "opsiconfd/application/jsonrpc.py", line 464, in execute_rpc
  File "<string>", line 1, in depot_getMD5Sum
  File "OPSI/Backend/Base/Extended.py", line 122, in _executeMethod
  File "<string>", line 1, in depot_getMD5Sum
  File "OPSI/Backend/Base/Extended.py", line 122, in _executeMethod
  File "<string>", line 1, in depot_getMD5Sum
  File "OPSI/Backend/Manager/AccessControl.py", line 443, in _executeMethodProtected
  File "<string>", line 1, in depot_getMD5Sum
  File "OPSI/Backend/Base/Extended.py", line 122, in _executeMethod
  File "<string>", line 1, in depot_getMD5Sum
  File "OPSI/Backend/Base/Extended.py", line 122, in _executeMethod
  File "OPSI/Backend/Depotserver.py", line 89, in depot_getMD5Sum
opsicommon.exceptions.BackendIOError: Backend I/O error: Failed to get md5sum: [Errno 2] No such file or directory: '/var/lib/opsi/repository/hwaudit_4.2.0.1-1.opsi'
opsi-package-manager -d opsi-linux-depot.tld -i hwaudit_4.2.0.1-1.opsi lädt das Opsi Paket auf das zweite Depot, sucht es dann aber anscheinend am Config-Server/ersten Depot unter /var/lib/opsi/repository

opsi-server.tld und opsi-linux-depot.tld zeigt auf die gleiche IP (192.....).

Die beiden Depot Konfigurationen:
Config-Server
Config-Server
depot1.png (52.91 KiB) 1555 mal betrachtet
Linux-Depot
Linux-Depot
depot2.png (53.96 KiB) 1555 mal betrachtet
LG Markus
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2045
Registriert: 29 Mai 2008, 15:14

Re: OPSI Docker - zweiter Depotserver

Beitrag von j.schneider »

Hallo!
Habe gerade in den Code geschaut.
Der opsi-package-manager kann aktuell nicht mit unterschiedlichen Ports umgehen.
Er verbindet sich immer auf Port 4447 des Depots.
Aktuell geht es also nur mit zwei unterschiedlichen IP-Adressen.
Wir schauen uns das für opsi 4.3 an.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


me-sp
Beiträge: 11
Registriert: 26 Jan 2023, 09:11

Re: OPSI Docker - zweiter Depotserver

Beitrag von me-sp »

Hallo,

ok verstehe, danke für die Info.

Gibt es ein ungefähres Datum für opsi 4.3?
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2045
Registriert: 29 Mai 2008, 15:14

Re: OPSI Docker - zweiter Depotserver

Beitrag von j.schneider »

Wir gehen in den nächsten 3-4 Wochen in die Beta-Phase.
Wenn keine größeren Problem mehr auftauchen gehe ich von einem Stable-Release im Juni aus.
Das Problem ist in 4.3 auf jeden Fall behoben.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Benutzeravatar
j.schneider
uib-Team
Beiträge: 2045
Registriert: 29 Mai 2008, 15:14

Re: OPSI Docker - zweiter Depotserver

Beitrag von j.schneider »

Habe einen Backport auf opsi 4.2 gemacht.
Die Änderung ist in opsi-utils 4.2.0.197.
Es wird dann demnächst ein neues Docker-Image geben.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


me-sp
Beiträge: 11
Registriert: 26 Jan 2023, 09:11

Re: OPSI Docker - zweiter Depotserver

Beitrag von me-sp »

vielen Dank für Ihre großartige Unterstützung. Wir melden uns wenn wir den neuen Docker Container getestet haben.
Antworten