Feedback WAN Modul wenn Rechner schon im Homeoffice sind

Antworten
Jan.Schmidt
Beiträge: 439
Registriert: 08 Jul 2017, 12:02

Feedback WAN Modul wenn Rechner schon im Homeoffice sind

Beitrag von Jan.Schmidt »

Hi,

ich hatte das Glück, vor dem "Homeoffice" schon die mysql erweiterung aktiv nutzen zu können, das WAN Modul kam erst nachdem alle Rechner schon im Homeoffice sind.

Vorab: Das hat alles ziemlich gut geklappt, ABER....
Es sind wie immer die kleinen Details, die großes Aua machen ;-)

Was ist passiert?
Rechner waren im opsi "ritzerot" und ich hab frei nach der Faq ein "on demand" losgetreten - keine gute Idee, weil die Clients dann ohne WAN Modul fleissig Pakete gezogen haben und naja - Ihr könnts Euch vorstellen.

Wie kommt Ihr ans WAN Modul, aber nicht in meine Lage?
Jaanz einfach, mit diesem Script:

Was macht es?
Wenn ein client umgestellt werden soll, prüft das script:
  • ist der Rechnername ein Notebook (über den Rechnernamen, bzw. gibt es den opsiHostKey)
  • Ist der Rechner mit einem aktuellen (nicht auf setup stehenden) opsi-client-agent versehen? ->
    • Ja weiter, nein finger weg!
  • Ist der Rechner vielleicht schon umgestellt?
    • Wenn ein Paket auf cached steht muß er das (einen anderen hint hab ich nicht gefunden) ja schreib das in eine Datei, nein mach weiter.
Ist Software auf setup gestellt, die beim ondemand loslegt?
  • Wenn ja schreibe das (in einer opsi tauglichen Zeile) in eine Datei und manipuliere die db derart, das da nix auf setup steht.
  • Bei dem Reimport gilt:
    • Hier bitte aufpassen, immer nur eine Zeile (ppsi-admin -d task setActionRequestWithDependencies setup) nacheinander ausführen, nicht alles aus der Datei kopieren und in der ssh session abfeuern, das mag "er" nicht so gerne.
Ich mach das mit dem Reimport der Pakete einen Tag später, nachdem ich den Client umgehoben habe - Siecher ist Siecher (Alles für den Dackel alles für den Club)

Viel Spass & Erfolg und bleibt Gesund

Code: Alles auswählen

Ihr müsst diese Werte in anpassen:
domain=
dump2path=
export MYSQL_PWD=

Dann sind die Rechnernamen, die umgestellt werden sollen im skript "versteckt", das hab ich nicht in variablen gepackt - da wären "nbw-f-[0-9]" & "nbw-b-[0-9]" weil unsere Notebooks nach der Nomenklatur 
nbw-f-ziffernfolge oder nbw-b-ziffernfolge benamst sind. Das müsst Ihr anpassen.

Code: Alles auswählen

#/bin/sh

#vars:
domain=meine-domain
dump2path=/mein/ausgabepfad
export MYSQL_PWD=dasopsidatenbankpasswort

#get hostkey from mysql
echo 'select hostId, opsiHostKey from HOST where hostId REGEXP "nbw-f-[0-9]" or hostId REGEXP "nbw-b-[0-9]"  order by HostId asc;'|mysql -u 'opsi' opsi>$dump2path/hostkeys

#change client 2 WAN

 echo "Opsi Client 4 WAN vorbereiten"
 echo "Clientname: ohne $domain"
 read hostname
 hostname=$(echo $hostname|tr '[A-Z]' '[a-z]')
 if [ $hostname ]
   then
   hostkey=$(grep $hostname hostkeys|awk  '{ print $2 }')
   if [ $hostkey ]
      then
      echo 'SELECT productId FROM PRODUCT_ON_CLIENT where 'clientId' = '"'$hostname.$domain'"' and 'actionRequest' = '"'setup'"';'|mysql -sN -u 'opsi' opsi>$dump2path/$hostname.ini
      grep opsi-client-agent $dump2path/$hostname.ini && exit
      check=$(echo 'select actionProgress from PRODUCT_ON_CLIENT  WHERE 'clientId' = '"'$hostname.$domain'"' AND actionProgress =  '"'cached'"' LIMIT 1;'|mysql -sN -u 'opsi' opsi)
      if [ ! "$check" == "cached" ]
         then
         echo 'update PRODUCT_ON_CLIENT set 'actionRequest' = '"''"'  WHERE 'clientId' = '"'$hostname.$domain'"';'|mysql -u 'opsi' opsi
         opsi-admin -d method configState_create opsiclientd.event_gui_startup.active $hostname.$domain false
         opsi-admin -d method configState_create opsiclientd.event_gui_startup{user_logged_in}.active $hostname.$domain false
         opsi-admin -d method configState_create opsiclientd.event_net_connection.active $hostname.$domain true
         opsi-admin -d method configState_create opsiclientd.event_timer.active $hostname.$domain true
         opsi-admin -a https://$hostname.$domain:4441/opsiclientd -u "$hostname.$domain" -p "$hostkey" method fireEvent "on_demand" 
         echo "Diese Pakete wieder auf setup stellen:"
         cat $dump2path/$hostname.ini
         while read host2do
            do
            echo opsi-admin -d task setActionRequestWithDependencies setup $host2do $hostname.$domain>>$dump2path/$hostname.txt
            done <$dump2path/$hostname.ini
      else 
         echo "$hostname.$domain ist bereits umgestellt"
         echo "$hostname.$domain">>$dump2path/wan_is_done.txt
      fi
   fi   
 fi
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Feedback WAN Modul wenn Rechner schon im Homeoffice sind

Beitrag von holgerv »

Hallo Jan,

die Situation, die Du schilderst, haben bestimmt mehrere Leute gerade. Schön, dass Du Deinen Ansatz mit uns teilst :-)
Jan.Schmidt hat geschrieben: Wenn ein client umgestellt werden soll, prüft das script:
[...]
Ist der Rechner vielleicht schon umgestellt? Wenn ein Paket auf cached steht muß er das (einen anderen hint hab ich nicht gefunden) [...]
Du könntest Dir die Hostparameter ansehen, um zu entscheiden, ob ein Client schon umgestellt ist.
Zum Beispiel, in dem Du abfragst, ob opsiclientd.event_timer.active = True ist, oder ob opsiclientd.event_gui_startup.active = False ist ... je nachdem, wie ihr die WAN-Erweiterung genau konfiguriert habt.

Schönen Gruß


Holger
Jan.Schmidt
Beiträge: 439
Registriert: 08 Jul 2017, 12:02

Re: Feedback WAN Modul wenn Rechner schon im Homeoffice sind

Beitrag von Jan.Schmidt »

Hallo Holger,

ähh nein ;-)

Nehmen wir an, ich hab einen Rechner im vpn entdeckt, öffne mein (eh immer laufendes) ssh fenster zum opsi und jag das los.
Genau in dem Moment kickt der Benutzer sein vpn oder macht den Deckel zu - (ask me how i know)

Dann steht schön "opsiclientd.event_timer.active = True" in der db, aber den fireEvent "on_demand" hat der nicht mitbekommen und dann stehe ich da ;-(

Aber...
Die werte zu setzen - ohne die Abfrage ob die bereits gesetzt sind - ist "vielleicht" flüssiger als flüssig (überflüssig) aber wie heisst es: "Viel hilft viel" und "Nur faule bauen scripte - nenn mich den Meister der faulen"

Gruß
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Feedback WAN Modul wenn Rechner schon im Homeoffice sind

Beitrag von holgerv »

Hallo Jan,

stimmt, da hab ich mir Dein Skript nicht genau genug angeguckt.

Wir verteilen die opsi-WAN-Erweiterung über ein Localboot-Produkt "opsi-wan-config-on" (https://download.uib.de/opsi4.1/stable/ ... localboot/), da kann ich anhand der Hostparameter erkennen, wer das Paket schon bekommen hat.

Du verteilst die WAN-Erweiterung über "configState_create"-Methoden auf dem Server, da funktioniert das nicht.

Schönen Gruß


Holger
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Feedback WAN Modul wenn Rechner schon im Homeoffice sind

Beitrag von holgerv »

Für den opsi-host-key musst Du übrigens nicht über die Datenbank gehen:

Code: Alles auswählen

opsi-admin -dS method getOpsiHostKey "FQDN"
Antworten