ProductDependency mit Bedingungen

Antworten
mensch90
Beiträge: 130
Registriert: 27 Jul 2013, 16:52

ProductDependency mit Bedingungen

Beitrag von mensch90 »

Moin moin,
ich habe einiges zum Thema ProductDependencies gefunden, bin mir jedoch nicht sicher, ob mein Anliegen abgedeckt wird:

Szenario:

Paket A wird auf jedem Rechner ausgerollt
Paket B nur auf wenigen als Erweiterung des Paketes A

Wenn jetzt folgender Zustand herrscht:

Auf Rechner 1 ist nur Paket A installiert, auf Rechner 2 ist Paket A und B installiert.

Ich setze nun, da sich Änderungen ergeben haben, Paket A erneut auf Setup. (Meine Routine fängt das ab, führt zu keinen Problemen, möchte/kann aus einigen Gründen nicht die Updateroutine nutzen)
Nun soll bei Rechner 1 das Paket B sinnvollerweise nicht getriggert werden, aber bei Rechner 2 soll ebenfalls Paket B erneut automatisch auf Setup gesetzt werden.

Mittels required-Statements komme ich ja nicht hin, da dies eine erforderliche Anforderung ausspricht - diese ist ja nicht bei Paket B gegeben.

Sprich: if Paket A & B installed then A + B to setup | if Paket A installed then A to setup, ignore B

Vielen Dank!
Vielleicht denke ich auch zu kompliziert...
dkoch
Beiträge: 309
Registriert: 25 Nov 2011, 14:03

Re: ProductDependency mit Bedingungen

Beitrag von dkoch »

Gibt es denn eine für ein Script erfassbare Logik wann Paket B installiert werden soll ?
dann wäre Methode 1:
Wenn das zutrifft wird Paket B über einen OpsiServiceCall angefordert ( Ist eine eigene Sektion - Siehe Handbuch )

Wenn es eine Logik ist die nur ein Angestellter nachempfinden kann:

Möglichkeit 2:
Paket A und B zu Paket AB machen. Mit einem Bool-Schalter ob der optinale Part mit installiert werden soll

Möglichkeit 3:
Zu Paket A einen Schalter hinzu machen der wenn True per OpsiServiceCall Paket B anfordert

Ansonsten vielleicht mehr ins Detail gehen. Wir haben hier alle nichts zu verheimlichen und können unsere Probleme ruhig auf den Punkt bringen :)
Benutzeravatar
Thomas_H
Beiträge: 525
Registriert: 09 Jun 2010, 11:57
Wohnort: Havelland

Re: ProductDependency mit Bedingungen

Beitrag von Thomas_H »

Moinsens,
dkoch hat geschrieben: Wenn es eine Logik ist die nur ein Angestellter nachempfinden kann:
Naa! Naa! :D

Also, ich denke ja mal, dass Du das Paket "B" für bestimmte Rechner selbst auswählst und das nicht automatisch machen willst, je nach dem, ob es sich hierbei um den "Schäff"-Rechner oder um den "Möchtegern-Schäff" handelt. Aber selbst das wäre möglich... :-) Hier kommt wie:

Eine If-Bedingung funktioniert immer dann, wenn Du eine Variable mit einem Inhalt, das kann auch ein NULL-Wert sein füllst:

Code: Alles auswählen

if $rechnername="Schäff" then...
oder eben auch
if $special_user<>"" then
wobei hier der Wert "$special_user aus einem Script als WAHR oder FALSCH käme, der wiederum durch ein beispielweise VB-Script erstellt wurde.

Nehmen wir an, Du hast die Gruppe der Geschäftsführung. Diese sollen alle ein Zusatzmodul zur Personaldatenbank erhalten, welches sie berechtigt, die erweiterten Daten zu sehen und die Daten insgesamt auch zu bearbeiten. In einer Liste oder in der ADS hast Du die Namen in der Gruppe zusammengefasst:

Code: Alles auswählen

detlef.oertel
ute.hahn-klimroth
susanne.ehlers
Das opsi-Script könnte nun die Existenz des Ordners C:\Users\detlef.oertel prüfen und dann das zusätzliche Modul installieren.
Im Fortgang der Installation muss aber sichergestellt werden, dass die Ordner- oder Dateiberechtigung für das Modul nur an die berechtigten Personen vergeben wird, denn es könnte ja sein, dass sich der Nutzer detlef.oertel am Rechner zwar mal angemeldet hat, aber nur um etwas zu richten, was nicht funktionierte, ansonsten aber der Nutzer Ülükmen daran arbeitet (nicht, dass ich ihm nicht zutrauen würde, dass er ein Problem nicht auch selbst beheben kann ;)). Hast Du einen ADS-Server ist es noch einfacher, dann muss nur die Gruppe berechtigt werden.
Ebenso könntest Du aber auch mittels VB-Script den aktuell angemeldeten Nutzer prüfen und dann einen Share auf einem Server freigeben, welcher dann das zusätzliche Modul freigibt.

Das ist die "elegante Variante", die aber mehr Fleiss erfordert. Da aber ein guter Programmierer auch immer "arbeitsfaul" sein sollte (nur dann programmiert er auch die Eventualitäten mit und kann später über Jahre alles mit wenigen Klicks machen :)) rate ich zu dieser.

Zusammengefasst:

WER soll das Zusatzpaket bekommen?
WIE unterscheide ich die Verteilung und
WELCHE wiedererkennbaren Merkmale ergeben sich daraus?
WAS kann ich automatisieren?
WORAN erkennt mein Programm die Unterschiede?
WOMIT muss/kann ich das programmieren?

Wenn ich diese Fragen beantwortet habe, muss ich das nur noch programmtechnisch umsetzen.

Selbst wenn Du eine manuelle Installation durchführst, durchläufst Du die Fragenkette. Wobei Du ja das WER manuell bestimmst. Ab dem "WIE" bist Du aber wieder in der Automation:

Existiert auf dem Client ein Verzeichnis mit dem Paket "B"?
Liegt darin die Datei XY?
Wenn ja, dann ---> aktualisiere "B"

So gehe ich an jedwedes zu programmierende Problem...

Gruß

Thomas_H
Kennst Du schon die WIKI für OPSI-Scripte? Fertige Installationsscripte bekommen und ablegen unter OPSI-Wiki
Aus dem Glashaus :) : UIB bietet auch Schulungen und Supportverträge für Opsi an.
Bild
Antworten