Automatischer Skriptstart nach automatischer Installation

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Danny001
Beiträge: 3
Registriert: 26.02.2018 23:20:35

Automatischer Skriptstart nach automatischer Installation

Beitrag von Danny001 » 27.02.2018 00:00:44

Hallo zusammen,

ich versuche im Rahmen einer Abschlussarbeit eine Debian-Installation per USB-Stick zu automatisieren, die - ebenfalls automatisch - Software per Skript installiert und Konfigurationen vornimmt.
Was ich bisher realisieren konnte:
Die Installation des Betriebssystems wird per Parameterangabe in der syslinux.cfg und einer preseed.cfg gestartet. Auf dem Stick befindet sich eine debian-9.3.0-amd64-xfce-CD-1.iso, die also auch gezogen wird, damit nicht alles aus dem Netz geladen werden muss. Im Ergebnis steht eine weitestgehend automatisiert installiertes Debian-System.

Edit: Es wird keine grafische Oberfläche aber stattdessen der SSH-Teil installiert.

Nun zu meinem eigentlichen Problem:
Ich suche nach einer Möglichkeit, nach dem ersten Boot des frisch installierten Betriebssystems ein Skript auszuführen. Ich weiß jedoch nicht, wie ich dieses Skript automatisch vom Stick auf den Rechner kopiert und gestartet bekomme, ohne dass ich nach der Installation des Betriebssystems manuell eingreifen muss.
Ich stelle mir vor, dass ich mein(e) Skript(e) in die iso-Datei pflanze, die Datei(en) bei der Systeminstallation auf den Zielrechner kopiert werden und eine (vermutlich/hoffentlich) bereits existierende rc.local so anpasse, dass diese(s) Skript(e) nach dem ersten Boot ausgeführt wird.
Anders gefragt, wo kommt die rc.local bei der Installation des Betriebssystems her und kann ich sie (und Skripte) manipuliert vom USB-Stick installieren?

Hier hat doch bestimmt jemand eine Idee, wie ich sowas anstellen kann bzw. kann mir sagen wo ich die rc.local finde, ohne Alternativen ausklammern zu wollen.
Ziel soll es sein, dass ein System ohne manuelle Eingriffe verfügbar und lauffähig ist.

By the way, ich bin eigentlich kein Linuxer, aber auch kein völliger Laie. Falls ich also nicht gleich alles verstehe, habt Geduld mit mir.

Ich danke im Voraus!

Gruß, Danny

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Automatischer Skriptstart nach automatischer Installation

Beitrag von cronoik » 28.02.2018 23:42:14

Willkommen im Forum,

ich habe es noch nicht probiert, aber laut der Dokumentation von preseed ist es moeglich eigene Dateien einzubinden und Skripte auszufuehren [1].

[1] https://www.debian.org/releases/stable/ ... 05.html.en
Hilf mit unser Wiki zu verbessern!

Danny001
Beiträge: 3
Registriert: 26.02.2018 23:20:35

Re: Automatischer Skriptstart nach automatischer Installation

Beitrag von Danny001 » 01.03.2018 18:42:54

Danke für den Hinweis.
Ich hatte da zwar auch nachgeschaut, offensichtlich aber nicht aufmerksam genug gelesen. Ich werde das am Wochenende ausprobieren.

Danny001
Beiträge: 3
Registriert: 26.02.2018 23:20:35

Re: Automatischer Skriptstart nach automatischer Installation

Beitrag von Danny001 » 24.03.2018 23:52:48

Hi Folks,

kurze Rückmeldung, falls es mal jemand benötigt: mit late_command kann man wunderbar Skripte direkt nach der eigentlichen Installation aber noch vor dem ersten Booten ausführen. Man muss sich lediglich darüber im Klaren sein, in welcher Umgebung man sich in dem Moment befindet. Bei Debian 9 wird die Partition, auf der man die Installation vorgenommen hat unter /target/ eingehängt, der USB-Stick (in meinem Fall) befindet sich in /hd-media/. So war es zumindest mit der von mir gewählten Installationsvariante.

Ich habe mein Skript zuerst auf die Festplatte kopiert , ausführbar gemacht und dann mit in-target aufgerufen (alles in einer Zeile und immer nur ein Leerzeichen!):

d-i preseed/late_command string cp -a /hd-media/'Quellverzeichnis mit Skript'/ /target/; chmod +x /target/'Zielverzeichnis zum Skript'/*.sh; in-target /'Zielverzeichnis zum Skript'/skript.sh

Man beachte: die Pfadangabe bei in-target ist mit dem nach erstem Reboot zu erwartendem Wurzelverzeichnis, also ohne /target

Gruß, D.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

[gelöst] Re: Automatischer Skriptstart nach automatischer Installation

Beitrag von joe2017 » 26.07.2018 14:51:56

Vielen Dank für diese Info. Das hat schon mal bestens funktioniert!

Kann man evtl. auch eine Eingabe ermöglichen? Das Script läuft ja im Hintergrund, und die erwartete Eingabe wird nicht eingeblendet.
Zuletzt geändert von joe2017 am 02.08.2018 10:06:40, insgesamt 1-mal geändert.

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Automatischer Skriptstart nach automatischer Installation

Beitrag von joe2017 » 30.07.2018 17:26:45

joe2017 hat geschrieben: ↑ zum Beitrag ↑
26.07.2018 14:51:56
Kann man evtl. auch eine Eingabe ermöglichen? Das Script läuft ja im Hintergrund, und die erwartete Eingabe wird nicht eingeblendet.
Leider habe ich hierzu noch nichts gefunden. Vielleicht hat jemand von euch schon mal Erfahrungen hiermit gemacht. Über ein Tipp wäre ich sehr dankbar. :-)

Benutzeravatar
joe2017
Beiträge: 1125
Registriert: 07.08.2017 14:29:51

Re: Automatischer Skriptstart nach automatischer Installation

Beitrag von joe2017 » 02.08.2018 10:06:12

Ich hab das ganze jetzt folgendermaßen gelöst. Ich habe einfach in die Datei adtxt.cfg folgendes angehängt
Original Datei

Code: Alles auswählen

Automated install
	kernel /install.amd/vmlinuz
	append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet 
Meine Datei

Code: Alles auswählen

Automated install
	kernel /install.amd/vmlinuz
	append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet  file=/cdrom/preseed.cfg ClientHostname=clientname1234
Wenn ich von meinem USB Stick Boote wähle ich Advanced und automatische Installation aus. ACHTUNG hier noch kein ENTER drücken sondern mit TAB die cmd anzeigen lassen.

Code: Alles auswählen

kernel /install.amd/vmlinuz
	append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet  file=/cdrom/preseed.cfg ClientHostname=clientname1234
Hier kann man ganz einfach die vordefinierte Variable ClientHostname (clientname1234) welche ich anschließend in meinem Script verwende anpassen.

Antworten