für unsere Testumgebung ist es wichtig, dass Opsi-Server zum "Frickeln" immer nach Schema F aufgesetzt sind. So kann man Fehler gut reproduzieren.
Da die Installation von Opsi aber zeitaufwendig ist und Imaging keine Option, läuft die Installation gescriptet (ohne Puppet, ohne Ansible usw.)
Kurze Zusammenfassung:
- Es wird per PXE/PreSeed ein Ubuntu 18.04 LTS installiert
- Die Quelldateien des Ubuntu liegen per apt-mirror gecached im Intranet
- Die Quelldateien von Opsi werden online bezogen (per mirror oder cache lässt sich Opsi nicht installieren, aber der Fehler "interessiert" erst später)
- Opsi wird während der PreSeed-Phase installiert
- Die Konfiguration von Opsi scheitert im PreSeed-late_command, daher ein Workaround über ein in die rc.local eingetragenes PostInstall-Script (auch ein Fehler, für später, soweit läuft es ja)
-->Und hier fängt mein Dilemma an (s.u.)
- Schlußendlich wird das PostInstall-Script wieder aus der rc.local entfernt
Das Dilemma:
- Das PostInstall-Script nimmt erfolgreich die Konfiguration des Opsi-Server vor, richtet alle notwendigen Benutzer ein
- Alle notwendigen OPSI-Pakete werden per wget nach /var/lib/opsi/workbench/heruntergeladen
- die Installation der Pakete wird auf zwei verscheidene Arten angestossen:
-- echo opsi-package-manager -i /var/lib/opsi/workbench/*.opsi | bash;
-- opsi-package-manager -i /var/lib/opsi/workbench/*.opsi
Leider scheint der Package-Manager eine GUI öffnen zu müssen, was als StartScript ohne Anmeldung problematisch ist.
Kann die GUI nicht dargestellt werden, fährt die Installation vor die Wand:
Wie bekomme ich nun meine .opsi-Pakete automatisiert in den Opsi?Aug 28 12:33:55 opsis01 rc.local[471]: Exception _curses.error: 'nocbreak() returned ERR' in <bound method CursesMainWindow.__del__ of <__main__.CursesMainWindow instance at 0x7fe6d9480170>> ignored
Aug 28 12:33:55 opsis01 rc.local[471]: ERROR: Failed to process command 'install': cbreak() returned ERR
Vielen Dank