Seite 1 von 1

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

Verfasst: 26 Jul 2017, 13:54
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

Re: Depot Neubefüllung irgendwie erzwingen?

Verfasst: 27 Jul 2017, 11:20
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

Re: Depot Neubefüllung irgendwie erzwingen?

Verfasst: 27 Jul 2017, 13:40
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...

Re: Depot Neubefüllung irgendwie erzwingen?

Verfasst: 27 Jul 2017, 15:14
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...

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

Verfasst: 27 Jul 2017, 16:54
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 ;)

Re: Depot Neubefüllung irgendwie erzwingen?

Verfasst: 27 Jul 2017, 16:55
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

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

Verfasst: 27 Jul 2017, 17:34
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:

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

Verfasst: 27 Jul 2017, 17:41
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: