Automatische Verteilung

Antworten
mkusch
Beiträge: 1
Registriert: 25 Jun 2021, 07:39

Automatische Verteilung

Beitrag von mkusch »

Hallo zusammen,

Wir benutzen schon seit Ewigkeiten Opsi als Paketverteilungs Tool unserer Wahl.

Nun haben wir uns gefragt, ob es möglich ist, dass sobald für einen oder alle Clients ein Update/Installations-Paket geschickt wird das dieser Client sich, dann an genau diesem Tag zu einer Uhrzeit X hochfährt (über WOL), das Update/die Installation durchführt und sich dann wieder Runterfährt.


So wäre es möglich über den Tag eine Installation zu triggern, diese wird dann z. B. Abends um 23:00 Uhr ausgeführt und die Mitarbeiter können dann am nächsten Morgen ungestört weiter arbeiten.

Ich bedanke mich schon jetzt für Lösungsvorschläge.
Jan.Schmidt
Beiträge: 439
Registriert: 08 Jul 2017, 12:02

Re: Automatische Verteilung

Beitrag von Jan.Schmidt »

Hi,

zuerst brauchst du eun paar Listen

eine deiner Pakete, die kriegst du mit

Code: Alles auswählen

opsi-package-manager -l |cut -d ' ' -f4
Dann brauchst du eine Liste deiner Rechner mit deren MAC Adresse.
Hier wirds tricky, wenn du das ändern der mac in opsi durch den opsiclient nicht abgestellt hast, dann wird die mac in opsi eingetragen, mit der sich der client das letzte mal gemeldet hat und nicht die, die du zum pxe boot zeitpunkt da eingetragen hast. VPN Nix / Wlan Nic sind üblicherweise vom WOL etwas schwer erreichbar.

Hier kann ich dir ne Vorlage geben, wenn du das sql backend hast,

Code: Alles auswählen

select  hostId, hardwareAddress from HOST
Dann brauchst du jemanden, der jedes Paket, das veraltet ist auf die Clients jagt

Code: Alles auswählen

#! /bin/sh

while read packages
  do
  opsi-admin -d task setActionRequestWhereOutdated setup $packages >>/var/wherever/outdated.txt
done <  packages.txt
Vorher löscht du natürlich die /var/wherever/outdated.txt und sinnvoll wäre ein sort -u danach auf die Datei jagen,

Dann irgendwas nach deinem belieben, das päckchenweise die /var/wherever/outdated.txt mit einem wol versieht.

z.B

Code: Alles auswählen

grep 1.\ /var/wherever/outdated.txt > /var/wherever/outdated_clients_ending_with_1.txt 
Und dann mit einem do while die /var/wherever/outdated_clients_ending_with_1.txt ausliesst und die treffer in deiner host zu mac liste sucht und dann einen wol damit durchführt.

Du siehst der Anfang ist ziemlich simpel, da kannst du xx Sachen dranhängen verfeinern verkomplizieren je nach belieben.
und sich dann wieder Runterfährt.
Ähhm. Aus eigener Erfahrung - das ist verdammt tricky und da würd ich mal eher die Finger von weg lassen :D

Variante A
Rechner ist ausgeschaltet - opsi braucht 10 minuten und wird runtergefahren

Variante B
Rechner ist eingeschaltet, weil User da irgendwas berechnet - opsi braucht 10 minuten und wird dann runtergefahren

Variante C:
Rechner ist ausgeschaltet - opsi braucht 2 Stunden währenddessen meldet sich der Anwender an und wird runtergefahren

Bei Variante A ist alle Roger in Kambodscha, bei Variante B gibts auf die Finger und bei Variante C mußt du nicht mehr mit Schokolade des davorsitzenden rechnen, wenn Du dem mal ganz heftig aus der Patsche hilfst.

Ask me hau i no sis
Antworten