Selbstdefinierter Pfad für Depot-Dateien (depotLocalUrl)

Antworten
ant
Beiträge: 10
Registriert: 21 Jan 2010, 14:17

Selbstdefinierter Pfad für Depot-Dateien (depotLocalUrl)

Beitrag von ant »

Hallo zusammen,

ich bin gerade dabei einen neuen OPSI-Server (4.3.4.4) auf einem Debian-Server (Proxmox-VM, LXC) einzurichten (bisherige Erfahrungt habe ich mit dem OPSI-Server (4.0.7.4) gemacht). Dabei bin ich auf folgendes Problem gestoßen:

Versuch einen Config-Server einzurichten mit dem lokalen Depot-Verzeichnis
'depotLocalUrl'. Der Standardpfad /var/lib/opsi/depot soll auf ein
Samba-Share zeigen, das auf einem anderen Server liegt.
  1. Versuch
    • Ein Samba-Share mounten mit cifs
      //SRV/smbshare/opsiupdates on /opt/opsiupdates type cifs (rw)
    • Das Verzeichnis '/var/lib/opsi/depot' wurde entfernt.
    • Ein Link wurde erstellt
      /var/lib/opsi/depot -> /opt/opsiupdates/
    • Beim Installieren von Packages tritt ein Fehler aus:

      Code: Alles auswählen

      opsi-package-updater -vv --repo uib_windows install opsi-client-agent
          ...
          Traceback (most recent call last):
          File "opsiutils/opsipackageupdater.py", line 453, in main
          File "opsiutils/opsipackageupdater.py", line 423, in updater_main
          File "opsiutils/update_packages/Updater.py", line 424, in processUpdates
          File "<string>", line 1, in depot_installPackage
          File "opsicommon/client/opsiservice.py", line 1325, in jsonrpc
          opsicommon.exceptions.OpsiRpcError: Opsi rpc error: Backend error: Failed to install package 
          ....
      
      In der Log-Datei /var/log/opsi/opsiconfd/opsi.domainname.de.log steht:

      Code: Alles auswählen

          Traceback (most recent call last):
          File "shutil.py", line 853, in move
          OSError: [Errno 18] Invalid cross-device link: '/var/lib/opsi/tmp/tmp8qmz89nm/CLIENT_DATA' -> '/var/lib/opsi/depot/opsi-client-agent'
  2. Versuch
    • Das Verzeichnis /var/lib/opsi/depot wiederhergestellt.
    • Es wird der Wert der Einstellung 'depotLocalUrl' über opsi-configed für Windows angepasst:
      depotLocalUrl: /opt/opsiupdates

      Der Wert konnte auf dem Server mit opsi-admin verifiziert werden:

      Code: Alles auswählen

      opsi-admin -i
                @opsi-admin> method host_getObjects
                ...
                "depotLocalUrl": "file:///opt/opsiupdates"
                ...
    • Beim Versuch ein Produkt zu installieren

      opsi-package-updater -vv --repo uib_windows install opsi-client-agent

      treten keine Fehlermeldungen mehr.
      Aber das Paket wird in das Verzeichnis /var/lib/opsi/depot installiert.
      Das oben konfigurierte Verzeichnis "file:///opt/opsiupdates" bleibt leer.
  3. Versuch
    • Das Samba-Share wird direkt in das Verzeichnis '/var/lib/opsi/depot' gemountet
      //SRV/smbshare/opsiupdates on /var/lib/opsi/depot type cifs (rw)
    • Beim Versuch ein Produkt zu installieren treten gleiche Fehler auf, wie beim ersten Versuch.
Gibt es eine Möglichkeit, das Verzeichnis für ein Depot selbst festzulegen?

Vielen Dank im Voraus
Anton
Benutzeravatar
ThomasT
uib-Team
Beiträge: 554
Registriert: 26 Jun 2013, 12:26

Re: Selbstdefinierter Pfad für Depot-Dateien (depotLocalUrl)

Beitrag von ThomasT »

Hallo Anton,

mit opsi 4.3 sind die Pfade leider fix:
https://docs.opsi.org/opsi-docs-de/4.3/ ... repository

Das Re-Share eines SMB-Shares würde ich dir jetzt auch nicht unbedingt empfehlen.
Was gehen kann ist das Sharen eines NFS Share...
Kein Support per DM!
_________________________
opsi support - https://www.uib.de/
For productive opsi installations we recommend support contracts.
ant
Beiträge: 10
Registriert: 21 Jan 2010, 14:17

Re: Selbstdefinierter Pfad für Depot-Dateien (depotLocalUrl)

Beitrag von ant »

Hallo Thomas,

vielen lieben Dank.

Beim 1.Versuch habe ich ja ein Link erstellt, und das hat nicht ganz funktioniert.
Die Dateien werden bei einer Installation zwar hin kopiert

Code: Alles auswählen

opsi-package-manager --force -i repository/opsi-client-agent_4.3.3.14-1.opsi
aber am Ende gibt es eine Fehlermeldung.

Wie ich schon vorher beschrieben habe, ist das anscheinend ein Python Error Code:

Code: Alles auswählen

OSError: [Errno 18] Invalid cross-device link: '/var/lib/opsi/tmp/tmp8qmz89nm/CLIENT_DATA' -> '/var/lib/opsi/depot/opsi-client-agent'
Übrigens OPSI soll selbst keine Shares anbieten, die SMB-Freigabe mit Depot-Dateien auf einem anderen Samba-Server soll vom Client direkt angesprochen werden.
Samba-Server-Dienst habe ich auf der VM mit OPSI deaktiviert.
So hat es bist jetzt mit OPSI 4.0.4 wunderbar funktioniert. Die VM mit OPSI-Server belegt somit nicht viel Platz, da die ganzen Installations-Dateien unserer Pakete liegen auf einem Samba-Server im Netz.

Ich experimentiere noch weiter. Vielleicht sehe ich dann eine Lösung.

Bezieht OPSI-Client die Dateien jetzt immer über WEBDAVS-Protokoll? Könnte das angepasst werden?

Viele Grüße
Anton
ant
Beiträge: 10
Registriert: 21 Jan 2010, 14:17

Re: Selbstdefinierter Pfad für Depot-Dateien (depotLocalUrl)

Beitrag von ant »

Habe jetzt eine VM also kein LXC-Container unter Proxmox konfiguriert, basiert auf Debian 12.

Alles bisherigen Fehlermeldungen sind nicht mehr vorgekommen. Ich konnte ein Paket aus uib-Repository erfolgreich auf unserem neuen Server installieren.

Ich vermute es liegt an der Art, wie SMB-Shares in einem LXC-Container zur Verfügung gestellt werden. In einem LXC-Container kann ein SMB-Share nicht direkt gemountet werden, es wird auf der Host-Maschine erledigt und als neuer Mount-Point dem LXC-Container zur Verfügung gestellt.

In einer VM mounte ich ein SMB-Share immer direkt und mit einem /etc/fstab Eintrag automatisch. Das Depot-Verzeichnis '/var/lib/depot ' kann dann als link angelegt werden, das auf das Verzeichnis auf dem SMB-Share verweist.

VG und vielen Dank
Anton
Antworten