[Gelöst] Depot Neubefüllung irgendwie erzwingen?

Antworten
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

[Gelöst] Depot Neubefüllung irgendwie erzwingen?

Beitrag von pandel »

Hallo!

Gibt es eine Möglichkeit, nach dem Backup und Restore eines Servers die Wiederbefüllung von Depot- und Repoverzeichnis zu erzwingen? Hintergrund ist, dass diese Ordner ja nach einer Wiederinbetriebnahme eines Depots erstmal sind, der opsi-product-updater aber behauptet, dass er nix machen muss, weil schon alles da und up-to-date ist...

AM besten wäre, wenn der opsi-product-updater einen Schalter hätte, mit dem man sagen, "reinstalliere alles nochmal vom Configserver, von dem du glaubst, es wäre schon da und aktuell"... :mrgreen:

Lieber Gruß
Holger
Zuletzt geändert von pandel am 27 Jul 2017, 15:26, insgesamt 1-mal geändert.
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Depot Neubefüllung irgendwie erzwingen?

Beitrag von n.wenselowski »

Hallo Holger,
pandel hat geschrieben:Gibt es eine Möglichkeit, nach dem Backup und Restore eines Servers die Wiederbefüllung von Depot- und Repoverzeichnis zu erzwingen? Hintergrund ist, dass diese Ordner ja nach einer Wiederinbetriebnahme eines Depots erstmal sind, der opsi-product-updater aber behauptet, dass er nix machen muss, weil schon alles da und up-to-date ist...
Die Art und Weise ist aktuell noch jedem selbst überlassen. Manche machen ein rsync, manche nutzen opsi-package-manager und wieder andere spielen den Teil einfach aus ihrem Backup zurück. Durch die vielfältigen Möglichkeiten und Ansichten beim Neu-Aufbau eines bestehenden Depots gibts aktuell kein einheitliches Tool hierfür.
pandel hat geschrieben:AM besten wäre, wenn der opsi-product-updater einen Schalter hätte, mit dem man sagen, "reinstalliere alles nochmal vom Configserver, von dem du glaubst, es wäre schon da und aktuell"... :mrgreen:
In opsi 4.1 kann man den Download von Paketen erzwingen.
Bis dahin musst du dich noch etwas gedulden ;)


Viele Grüße

Niko

Code: Alles auswählen

import OPSI
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

Re: Depot Neubefüllung irgendwie erzwingen?

Beitrag von pandel »

In opsi 4.1 kann man den Download von Paketen erzwingen.
Super!
Bis dahin musst du dich noch etwas gedulden ;)
Nicht soooo super... aber gut, dann wart' ich einfach bis morgen :twisted:

Nu mal im Ernst, du schriebst:
Manche machen ein rsync...
heißt im Klartext, ich such mir ein Depot, das genauso bestückt ist und rsynce mir Depot und Repo rüber? Puhh, da muss ich mir was einfallen lassen, denn ich habe vor Ort keinen Depotserver, von dem ich einen passenden und identischen Stand mal eben syncen könnte - der Konfigserver kommt nicht in Frage, da er auch alle Sonderpakete verwaltet, die nur an seiner Lokation sinnvoll und nötig sind...

Da werde ich mir dann wohl was scripten...
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

Re: Depot Neubefüllung irgendwie erzwingen?

Beitrag von pandel »

Für alle, die mitlesen und quick'n'dirty auch sowas in der Art suchen... hier ein Script, um die Produkte wieder in den Depot- und Repoordner eines Depots zu schieben, die sich angeblich darauf befinden sollen. Es benötigt rsync und sshpass und wird auf dem QUELLSERVER ;) ausgeführt...

Bitte selber lesen, was evtl. anzupassen ist...

Code: Alles auswählen

#!/bin/sh

DEST=$1
RSYNCUSER=$2
PASSWORD=$3

# --------------------------------------------------------------------------------------
DRY=--dry-run
#DRY=

PATH_DEPOT="/var/lib/opsi/depot"
PATH_REPO="/var/lib/opsi/repository"
# --------------------------------------------------------------------------------------

CMD="opsi-admin -S -d method  productOnDepot_getIdents '[]' '{\"depotId\":\"$DEST\"}'"

PACKS=`$CMD`

for p in $PACKS; do
    PROD=`echo $p | cut -d\; -f1`
    PR_VER=`echo $p | cut -d\; -f3`
    PA_VER=`echo $p | cut -d\; -f4`

    /usr/bin/rsync --progress -ratlz $DRY --rsh="/usr/bin/sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no -l $RSYNCUSER" $PATH_DEPOT/$PROD $RSYNCUSER@$1:$PATH_DEPOT/
    /usr/bin/rsync --progress -ratlz $DRY --rsh="/usr/bin/sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no -l $RSYNCUSER" $PATH_REPO/$PROD'_'$PR_VER-$PA_VER.opsi $PATH_REPO/$PROD'_'$PR_VER-$PA_VER.opsi.md5 $PATH_REPO/$PROD'_'$PR_VER-$PA_VER.opsi.zsync $RSYNCUSER@$1:$PATH_REPO/
done
Und das mir hier keiner mit "hässlichem Code", "Hack" oder sonstwas kommt :mrgreen: - das war eh nur für mal flott gedacht...
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1939
Registriert: 28 Mai 2008, 10:53

Re: [Gelöst] Depot Neubefüllung irgendwie erzwingen?

Beitrag von ueluekmen »

So, jetzt kommt mal die Mega-Abkürzung, ohne das ich selber getestet hätte natürlich, bin ja nicht verrückt ;):

Zwei Dinge vorab:

1. Wenn man sich nicht sicher ist in opsi, sollte man das folgende keinesfalls tun. :lol:
2. Backup ist zwar für Luschen, aber in diesem Fall würde ich sogar selber ein Backup machen 8-)

Dein Problem ist ja, dass das Backend denkt die Pakete sind auf dem Depot schon installiert, mach einfach mal das:

Code: Alles auswählen

opsi-admin -d method productOnDepot_getObjects '[]' '{"depotId":"deindepot.domain.local"}' > /tmp/productOnDepot.json
opsi-admin -d method productOnDepot_deleteObjects < /tmp/productOnDepot.json

Code: Alles auswählen

opsi-product-updater -i -vv
und Feuer ;)

PS.: Schöner gehts trotzdem mit dem neuen opsi-package-updater und sicherer auf jeden Fall ;)
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://www.uib.de
Benutzeravatar
GEI
Beiträge: 229
Registriert: 12 Feb 2010, 13:00
Wohnort: Braunschweig
Kontaktdaten:

Re: Depot Neubefüllung irgendwie erzwingen?

Beitrag von GEI »

pandel hat geschrieben:die mitlesen und quick'n'dirty
Und das mir hier keiner mit "hässlichem Code", "Hack" oder sonstwas kommt :mrgreen: - das war eh nur für mal flott gedacht...
DER Spruch ist gut - den muss ich mir merken .... könnte ich öfter anwenden! :D
Georg-Eckert-Institut - Leibniz-Institut für internationale Schulbuchforschung (GEI)
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
http://www.gei.de/o4i - https://wiki.o4i.org
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

Re: [Gelöst] Depot Neubefüllung irgendwie erzwingen?

Beitrag von pandel »

@ueluekmen
Oha, das is aber für ganz Mutige! Vor allem aber, was wird dann aus individuell konfigurierten Produktparametern am jeweiligen Depot? Muss ich die dann neu einstellen oder klopft er wirklich nur die Produkte raus, ohne weitergehende, referenzielle Prüfungen? ... Ach egal, ohne Risiko kein Spaß :twisted: :roll: ... aber ausprobieren würd ich's auch nicht :lol:

@GEI
Und ich erst... :lol:
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1939
Registriert: 28 Mai 2008, 10:53

Re: [Gelöst] Depot Neubefüllung irgendwie erzwingen?

Beitrag von ueluekmen »

Nur die harten kommen in Garten 8-)

Die DB ist nach meinem Hack nicht mehr konsistent, dass ist dann wohl so. Aber solange du kein cleanup-backend nach dem löschen machst, sollte eigentlich noch alles erhalten bleiben. Aber das ist Risiko auf eigene Gefahr... :mrgreen:
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://www.uib.de
Antworten