Seite 1 von 1

Produkte auf "installed" setzen

Verfasst: 08 Mai 2019, 16:39
von damien.leviet
Hallo zusammen,

bei uns steht eine Migration von Computer an.
Um sehr viel Traffic zu vermeiden, haben wir Mastersysteme mittels OPSI erstellt und diverse Produkte installiert.
Abschließend wurde das System gesysprepd und vervielfältigt.

So weit, so gut.
Jetzt wurde ein Teil der Geräte geliefert und wir haben auch schon einen wieder in die Domäne aufgenommen, den OPSI Client installiert und alles läuft wie erwartet.

Was jetzt fehlt, ist der Installationsstatus der Produkte. Diese sind logischerweise jetzt alle leer, da OPSI nicht weiß, dass der Rechner schon die Produkte vorinstalliert bekommen hat.

Meine Frage:
- Kann man mittels swaudit automatisch mit den Produktpaketen einen Abgleich machen? (Am besten mit einem Pattern)

Bitte auch mit Beispielen, da hier im Forum schon mal jemand die Frage gestellt und gelöst, jedoch kein Skript zur Verfügung bereitgestellt hat.

Danke euch!

Gruß,
Damien

Re: Produkte auf "installed" setzen

Verfasst: 08 Mai 2019, 22:06
von dropped91
Wo finden wir denn die Lösung?

Re: Produkte auf "installed" setzen

Verfasst: 09 Mai 2019, 12:13
von n.wenselowski
Hi Damien,

damien.leviet hat geschrieben:bei uns steht eine Migration von Computer an.
Um sehr viel Traffic zu vermeiden, haben wir Mastersysteme mittels OPSI erstellt und diverse Produkte installiert.
Abschließend wurde das System gesysprepd und vervielfältigt.

So weit, so gut.
Jetzt wurde ein Teil der Geräte geliefert und wir haben auch schon einen wieder in die Domäne aufgenommen, den OPSI Client installiert und alles läuft wie erwartet.

Was jetzt fehlt, ist der Installationsstatus der Produkte. Diese sind logischerweise jetzt alle leer, da OPSI nicht weiß, dass der Rechner schon die Produkte vorinstalliert bekommen hat.


Nutzt ihr opsi-wim-capture? Das macht nämlich genau das (zurückspielen der opsi-Metadaten).

damien.leviet hat geschrieben:Meine Frage:
- Kann man mittels swaudit automatisch mit den Produktpaketen einen Abgleich machen? (Am besten mit einem Pattern)

Es ist nicht builtin in swaudit, weil das Problem auf das man immer läuft ist, dass die Produkt-IDs in opsi nie gleich sind zu den Daten, die das SWaudit ausliest.

Wenn man eine Zuordnung hat, kann man prüfen, ob eine Software auf einem Rechner installiert ist:

Code: Alles auswählen

auditSoftwareOnClient_getObjects(state=1, name=<software aus audit>, clientId=clientId)


Und wenn gefunden, dann mit folgendem Call den Status des opsi-Produkts auf installiert setzen:

Code: Alles auswählen

setProductInstallationStatus(productId, clientId, "installed")

Umwandlung in einen Call für eine spezifische Progammiersprache oder opsi-admin überlasse ich dem geneigten Leser ;)


Gruß

Niko

Re: Produkte auf "installed" setzen

Verfasst: 09 Mai 2019, 14:42
von damien.leviet
n.wenselowski hat geschrieben:Hi Damien,

Nutzt ihr opsi-wim-capture? Das macht nämlich genau das (zurückspielen der opsi-Metadaten).



Wir haben erst mittels opsi-netboot (win10-x64) sowie unseren OPSI-Paketen einen Rechner aufgesetzt (quasi One-Click Installation, richtig super!).
Danach wurde die Master-Festplatte dem Unternehmen, welches unsere PCs liefert, bereitgestellt und vervielfältigt.

n.wenselowski hat geschrieben:Wenn man eine Zuordnung hat, kann man prüfen, ob eine Software auf einem Rechner installiert ist:

Code: Alles auswählen

auditSoftwareOnClient_getObjects(state=1, name=<software aus audit>, clientId=clientId)


Und wenn gefunden, dann mit folgendem Call den Status des opsi-Produkts auf installiert setzen:

Code: Alles auswählen

setProductInstallationStatus(productId, clientId, "installed")

Umwandlung in einen Call für eine spezifische Progammiersprache oder opsi-admin überlasse ich dem geneigten Leser ;)


Gruß

Niko


Ich habe es am Ende mit einem kleinen Shellskript gelöst.
Ich hole mir aus einer einfachen Liste, wo sämtliche von uns genutzten Produkte stehen, die Daten in eine FOR Schleife und setze für den angegebenen Host den Status auf "installed":

opsi-setInstalled.sh

Code: Alles auswählen

#!/bin/sh
STATE="installed"
PRODUCTS=/root/opsi_default_products
DOMAIN=".local"

if [ -z $1 ]; then
    echo "Benutzung: $0 <workstation name>"
    exit 0
fi

for PRODUCT in $(cat $PRODUCTS); do
   echo "Produkt: $PRODUCT"
   opsi-admin -d method setProductInstallationStatus "$PRODUCT" "$1.$DOMAIN" $STATE
   echo "Status auf '$STATE' gesetzt!"
   echo ""
done;

echo "Status für alle Produkte von Host '$1' auf '$STATE' gesetzt!"
exit 0