geschrieben von Thomas_H 2011/12/27 08:53
aktualisiert: 2019/02/27 by Thomas_H
aktualisiert: 2022/02/10 by Thomas_H
Willkommen in der Wiki, die durch stolze erfolgreiche Nutzer von opsi initiiert wurde. Wenn Du Opsi (Open PC Server Integration) nutzen willst, dann musst Du Dir darüber klar sein, dass dieses System - wie andere Server auch - kein “Out-Of-The-Box”-System ist. Löse Dich also von der Vorstellung, dass Du opsi einfach nur installierst und danach dann jede Software und jedes Betriebssystem auf anderen Rechnern installieren kannst. Da gibt es noch einiges an Arbeit zu tun, bevor Du das machen kannst! Und obwohl es sehr (!) gute Anleitungen und Tips gibt für Opsi, so liegt es bei Dir die meisten Inhalte und Pakete für Opsi zu erstellen.
Diese Wiki soll verhindern, dass viel Arbeit ein zweites Mal gemacht werden muss, denn wenn ein Paket einmal erstellt wurde, können - und sollen - die Scripte hier eingestellt werden. Denk daran: andere haben viel Zeit in diese Scripte investiert, sie haben sich die Zeit genommen, diese Scripte hier zu veröffentlichen und Du sparst viel Zeit, wenn Du diese Scripte benutzt. So hilf anderen, in dem Du Deine eigenen Scripte hier veröffentlichst, wenn Du selbst welche erstellst.
Diese Howto ist in erster Linie für Neulinge gedacht, die mit Opsi anfangen und sich einen Überblick verschaffen wollen. Mit diesem Howto sollten sie die ersten Erfolge erzielen beim Erstellen eines Paketes, ohne das “Warum” oder “Was” in den Scripten zu kennen. Das “Warum” und “Was” ist etwas, das Du später lernst, aber es sei auch darauf hingewiesen dass Du das zu lernen hast wenn Du Opsi dauerhaft nutzen willst, ansonsten wirst Du permanent die Hilfe der anderen brauchen oder Du hast einen Supportvertrag mit UIB, dann machen die das alles für Dich.
Klar: Das Beste ist, die Schulungen zu machen, Informationen über die Opsi-Schulungen bekommst Du hier. Bezahlten Support mit erweiterten Leistungen gibt es ebenfalls dort.
Und natürlich erwarte ich, dass Du weißt, wie man ein Terminal öffnet, wie man putty benutzt (oder vergleichbare Programme), wie man etwas Text in eine Terminalanwendung hineinkopiert, je nach dem, welchen Weg Du für die Erstellung eines neuen Paketes gewählt hast. Wenn Du auf einer Windows-Maschine arbeitest dann wirst Du vielleicht via putty auf den Opsi-Server gehen, wenn Du eine VM benutzt, wirst Du wahrscheinlich copy and paste benutzen… wie auch immer, ich werde nicht den Weg beschreiben, wie Du das machen musst. Ich meine einfach, wenn Du einen Remote-Installationsserver benutzen willst, solltest Du über dieses Wissen verfügen.
Manchmal findest Du in den Beschreibungen etwas wie dieses hier:
Tree:
TightVNC.jpg TightVNC.reg Tightvnc_win7.reg delsub.ins setup.ins tightvnc_*version*-setup.exe uninstall.ins
Das zeigt den Verzeichnisbaum, so dass Du sehen kannst, wo Du die Dateien platzieren musst. Der Baum zeigt immer den Inhalt des Verzeichnisses CLIENT_DATA.
Es gibt viele Wege um die Scripte und Pakete zu erstellen. Hier wird davon ausgegangen, dass die Pakete direkt auf dem Opsi-Server erstellt werden. Für die einfachere Erstellung von Paketen installierst Du Dir 2 Tools auf Deinen Opsi-Server:
Ich habe mir einen Ordner namens “opsiproducts” im /home-Verzeichnis angelegt um darin die Pakete zu bauen. Mein Account ist ein Mitglied der Gruppe opsi-admin und das Verzeichnis hat natürlich rwx-Rechte für die Gruppe opsi-admin. Solch ein Ordner hat Vorteile und nach der Erstellung von Paketen solltest Du ihn behalten! Software ändert sich fast täglich und es ist wesentlich einfacher, die setup.exe auszutauschen und neu zu packen, als jedesmal von vorn zu beginnen, Verzeichnisse zu erstellen, den opsi-newprod aufzurufen usw.
Anmerkung hierzu von bell:
“Ich finde es einfacher unter Shares (–>Samba) zu entwickeln, damit man auch von den Testclienten drauf zugreifen kann. Ich entwickle fast nur unter Windows, da ich das wesentlich einfacher finde. Ich habe auf dem Rechner mit dem ich die Pakete entwickle Notepad++ mit Syntaxhighlighting für opsi und die .ins mit winst verknüpft.
Dadurch habe ich im Kontextmenü einen Eintrag von Notpad++ und kann die .ins einfach mittels doppelklick ausführen und starten.
So kann man das Skript solange testen bis es funktioniert und erst dann es zum Paket zu machen.”
(Diese Lösung ist aber eher etwas für Fortgeschrittene, die mit den Worten “Shares”, Syntaxhighlighting und winst schon etwas anfangen können.)
Zuerst folge den Anweisungen in der Anleitung "Getting Started", Kapitel 10.2 “Ein Opsi-Paket erstellen”. Basierend auf TightVNC with the new MSI installer (eine Fernsteuerungssoftware) werden wir ein “Localboot-Paket” erstellen. Localboot bedeutet, der Client bootet von seiner eigenen Festplatte.
Um ein neues Paket zu erstellen, gehen wir zuerst in das Verzeichnis, in welchem wir künftig unsere erstellten Pakete speichern wollen. Wenn unser Verzeichnis “/home/opsiproducts” (wie in meinem Beispiel) sein soll, müssen wir es zuerst erstellen und dann dorthin wechseln.
mkdir /home/opsiproducts cd /home/opsiproducts
Beitrag aus dem Forum, beigetragen von d.oertel:
“opsi produkte immer in /home/opsiproducts packen und nicht irgendwo anders.
Die drei wesentlichen Gründe hierfür sind:
1. Bedingt durch die Rechte in diesem Verzeichnis können unterschiedliche Leute(wenn sie nicht als root arbeiten) sich vertreten.
2. Der Befehl
opsi-setup --set-rights
kennt dieses Verzeichnis und setzt hier im zweifelsfall die Rechte richtig. Ein /home/mydir/opsi-install würde hingegen ignoriert. Das ist daher wichtig, da der opsi-package-manager bei der installation das Paket an den opsiconfd übergibt und der auf die Schnauze fällt wenn er dort wo das Paket liegt keine Leserechte hat
3. Das Verzeichnis ist als share 'opsi_workbench' freigegeben, was die Pflege von Produkten die dort liegen von einem Windows client aus deutlich vereinfacht.
So steht es übrigens auch im Handbuch:
http://download.uib.de/opsi4.0/doc/html/opsi-getting-started/opsi-getting-started.html#opsi-getting-started-softwintegration-create-opsi-package-handling
steht:
Sie sollten die Produkte in dem Verzeichnis /home/opsiproducts erstellen, welches der Gruppe pcpatch gehört und die Rechte 2770 hat (Setgroupid Bit für Gruppe pcpatch gesetzt), sowie als Share opsi_workbench freigegeben ist.”
Dann geben wir den ersten Befehl ein, um ein Opsi-Paket zu erstellen:
opsi-newprod
Wir müssen durch einige Bildschirme gehen. Das erste ist das “product-information-screen”. In diesem Bildschirm geben wir einige Informationen ein, beispielsweise
product id = tightvnc product name = TightVNC
und gehst dann in den Screens weiter, im nachfolgenden Fenster “product-scripts” gibst Du exakt die Namen “setup.ins” und “uninstall.ins” ein. Die meisten Scripte, die hier gelistet sind, haben ausserdem ein “delsub.ins”. Das ist nur eine Subroutine, die von setup.ins und uninstall.ins aufgerufen werden. delsub.ins gibst Du nicht im “product-scripts”-Fenster ein.
Wir werden im Moment keine “dependencies” (Abhängigkeiten) erstellen. Dependencies / Abhängigkeiten werden gebraucht, wenn eine Software vor ihrer eigentlichen Installation ein anderes Paket benötigt.
Zum Beispiel: CDBurnerXP braucht .NetFX. Du kannst hier also festlegen, dass zuerst .NetFX installiert wird, bevor CDBurnerXP installiert wird. Opsi wird also den Abhängigkeiten folgen und zuerst .NetFX installieren, ehe es mit CDBurnerXP weitermacht.
Für TightVNC werden wir keine “product-properties” definieren. Geh weiter in den Fenstern, bis opsi-newprod Dich informiert, dass ein neues Verzeichnis erstellt wurde (“a new folder has been created”).
Wenn Du durch das Programm durchgelaufen bist, hast Du in Deinem Verzeichnis /opsi-packages einen neuen Ordner (entsprechend unserem Beispiel) namens “tightvnc”
In diesem Verzeichnis findest Du drei weitere Verzeichnisse, namens CLIENT_DATA, OPSI und SERVER_DATA:
│ ├ tightvnc ├ CLIENT_DATA ├ OPSI │ ├ control │ ├ postinst │ └ preinst └ SERVER_DATA
Gehe nun in das Verzeichnis “/home/opsiproducts/tightvnc/CLIENT_DATA”:
cd /home/opsiproducts/tightvnc/CLIENT_DATA
Zuerst müssen wir das Installationsprogramm herunterladen, meist findest Du einen Link im oberen Bereich eines jeden Scriptes, wo wir das Programm bekommen können. Falls nicht, kann es sein, dass die Software eben nicht frei erhältlich ist. In unserem Beispiel finden wir TightVNC unter http://www.tightvnc.com/download.php
Folge dem Link und suche die “self-installing” Version für Windows. Klicke rechts auf den Link und kopiere die URL der Datei.
Gib nun
wget "https://www.tightvnc.com/download/2.8.63/tightvnc-2.8.63-gpl-setup-64bit.msi"
(Achtung! Die Versions-Nummer 2.8.63 kann sich bereits geändert haben wenn Du dieses HOWTO liest!)
ein, und das Setup-Programm wird direkt im Verzeichnis CLIENT_DATA gespeichert.
Nun brauchen wir die setup.ins, die uninstall.ins und die delsub.ins. Um sie zu bekommen und sie mit Inhalten zu füllen gehe wie folgt vor:
touch setup.ins joe setup.ins
Öffne nun in der Wiki die Seite tightvnc-script, markiere alles in der Box unter “setup.ins”, kopiere es und füge es in joe ein mittels SHIFT-INS. Finde nun die Zeile mit
Set $Inst_Prg$ = "tightvnc-2.8.63-gpl-setup-64bit.msi"
und ändere es in den Namen des Setup-Programms, dass Du vorher heruntergeladen hast.
Um die Datei zu sichern gib die Tastenfolge <STRG-K>x ein.
Mach das gleiche mit uninstall.ins und delsub.ins:
touch uninstall.ins joe uninstall.ins
Markiere alles in der Box unter “uninstall.ins”, kopiere es und füge es in joe ein mittels SHIFT-INS.
touch delsub.ins joe delsub.ins
Markiere alles in der Box unter “delsub.ins”, kopiere es und füge es in joe ein mittels SHIFT-INS.
Um Fehler während der automatischen Installation zu vermeiden gib ebenfalls den Befehl
touch Tightvnc_win7.reg
ein und lass die Datei leer. Diese Datei beinhaltet normalerweise die Registry-Einstellungen für TightVNC, die man vorgenommen hat, nachdem man TightVNC auf einem Testrechner installiert und eingerichtet hat. Es beinhaltet das Passwort für den Administrator.
Versuch es bei Google, such nach TightVNC und schau unter Bilder. Wenn Du eines gefunden hast, was Dir gefällt, kopiere es und bring es auf die Größe von 160×160 Pixel maximal. Speicher es als “TightVNC.jpg” ab.
Gut gemacht. Verlasse nun den Ordner CLIENT_DATA
cd ..
Damit befindest Du Dich nun im Verzeichnis “/home/opsiproducts/tightvnc”.
Das Paket packst Du mit dem Befehl
opsi-makepackage
Die Software wird nun zum Paket zusammengepackt. Das braucht ein wenig Zeit, je nach dem wie viele Dateien und welche Menge an Daten in das Paket gepackt werden müssen. Nach dem Packen gib den Befehl
opsi-package-manager -i *.opsi
ein, um das neue Paket in Opsi zu integrieren. Lade die Inhalte der Registerkarte “Localboot-Products” im configed neu, falls es während der Installation des neuen Paketes geöffnet war, ansonsten kannst Du das neue Paket nicht sehen.
Nun kannst Du es auf einem opsi-client testen.
Viel Spaß!