[gelöst] automatische Installation
Re: automatische Installation
Ich habe mit simple-cdd meine eigene Installationsmedien gebaut. Mit einem eigenen udeb, welches während der Installation Dinge abgefragt hat und zusätzliche Pakete installieren oder configs platzieren konnte.
Aber schau dir das lieber nicht an, das tool verlangt von dir deutlich mehr ab, als clonezilla. Damit habe ich Monate verbracht, bis alles exakt so lief, wie ich es haben wollte.
Der einfachste Weg sich eine preseed Datei in ein ISO zu platzieren, wird hier beschrieben:
https://wiki.debian.org/DebianInstaller/Preseed/EditIso
Aber schau dir das lieber nicht an, das tool verlangt von dir deutlich mehr ab, als clonezilla. Damit habe ich Monate verbracht, bis alles exakt so lief, wie ich es haben wollte.
Der einfachste Weg sich eine preseed Datei in ein ISO zu platzieren, wird hier beschrieben:
https://wiki.debian.org/DebianInstaller/Preseed/EditIso
Re: automatische Installation
Das habe ich auch schon mehrfach versucht und getestet. Jedoch hat das wie schon geschrieben nicht funktioniert.ThorstenS hat geschrieben:25.07.2018 16:32:35Der einfachste Weg sich eine preseed Datei in ein ISO zu platzieren, wird hier beschrieben:
https://wiki.debian.org/DebianInstaller/Preseed/EditIso
Ein Eintrag in der syslinux.cfg hat diese nicht geladen
Code: Alles auswählen
preseed/file=/cdrom/preseed.cfg
Re: automatische Installation
erstaunlich, die eingebettete preseed Datei aus der initrd wird immer geladen.
Hast du das ISO-Image auf einen USB-stick gepackt, oder eine CD gebrannt?
Beim USB stick wird die syslinux.cfg geladen, beim Booten von CD die isolinux.cfg.
Edit:
Anstelle von preseed/file kannst du auch mal preseed/url benutzen, geht vllt. schneller als immer wieder nen ISO zu bauen…
Edit2:
den pain in the ass Ausspruch von oben verstehst du sicherlich …
Hast du das ISO-Image auf einen USB-stick gepackt, oder eine CD gebrannt?
Beim USB stick wird die syslinux.cfg geladen, beim Booten von CD die isolinux.cfg.
Edit:
Anstelle von preseed/file kannst du auch mal preseed/url benutzen, geht vllt. schneller als immer wieder nen ISO zu bauen…
Code: Alles auswählen
preseed/url=http://192.168.2.100/preseed.cfg
den pain in the ass Ausspruch von oben verstehst du sicherlich …
Re: automatische Installation
Wahrscheinlich liegt hier das Problem. Ich nutze zwar einen USB Stick, jedoch wird meine preseed.cfg nur geladen wenn ich während der Installation file:///cdrom/preseed.cfg angebe?ThorstenS hat geschrieben:25.07.2018 17:10:20erstaunlich, die eingebettete preseed Datei aus der initrd wird immer geladen.
Hast du das ISO-Image auf einen USB-stick gepackt, oder eine CD gebrannt?
Beim USB stick wird die syslinux.cfg geladen, beim Booten von CD die isolinux.cfg.
Dann wird wahrscheinlich nicht meine syslinux.cfg, sondern meine isolinux.cfg verwendet. Dann kann ich natürlich viel in syslinux.cfg eintragen.
Jedoch ist die isolinux.cfg anders aufgebaut. An welcher Stelle muss ich die preseed.cfg hier angeben?
Re: automatische Installation
Kann es vielleicht sein, dass an der Stelle wo die Datei eingebunden wird, noch gar kein /cdrom/ existiert?
- heisenberg
- Beiträge: 3540
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: automatische Installation
Unwahrscheinlich. Aus eigener Erfahrung würde ich eher sagen: Das liegt daran, dass Du irgendwo einen Fehler drin hast:joe2017 hat geschrieben:26.07.2018 09:23:35Kann es vielleicht sein, dass an der Stelle wo die Datei eingebunden wird, noch gar kein /cdrom/ existiert?
- Falscher Dateiname irgendeiner config
- Falsche Config verwendet
- Fehler in der Konfigurationsdatei
Edit-1
Vielleicht bei der Installation auch nochmal auf den anderen Textkonsolen schauen, ob da irgendwelche Meldungen bzgl. Preseeding-Datei stehen, die gefunden oder nicht gefunden oder wegen Fehlern in der Datei nicht verwendet wird.
Nebenbei: Ich selbst habe mit Preseeding noch keine Erfahrungen. Deswegen sind alle Tips von mir rein aus der Erfahrung, was evtl. helfen könnte.
Zuletzt geändert von heisenberg am 26.07.2018 09:57:39, insgesamt 1-mal geändert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: automatische Installation
Also meine Config Files habe ich doch schon mehrmals gepostet. Aber zur Sicherheit hier noch einmal.
- Ich habe meine preseed.cfg auf die ROOT Ebene meines USB Sticks kopiert.
- Ich habe die Datei syslinux.cfg bearbeitet und diese sieht jetzt folgendermaßen aus:
Ich weiß, ich habe einen USB Stick und in die Config müsste eigentlich preseed/file=/hd-media/preseed.cfg geschrieben werden.
Wenn ich jedoch die Datei im Setup angebe, wird diese nur mit /cdrom/ erkannt. Aus welchem Grund auch immer? Ich habe allerdings auch schon beides getestet.
Die Variante mit der initrd finde ich nicht ganz so gut, da ich bei Änderungen jedes mal eine neue ISO erstellen muss. Das hat übrigens auch nicht wirklich funktioniert.
- Ich habe meine preseed.cfg auf die ROOT Ebene meines USB Sticks kopiert.
- Ich habe die Datei syslinux.cfg bearbeitet und diese sieht jetzt folgendermaßen aus:
Code: Alles auswählen
DEFAULT loadconfig
LABEL loadconfig
CONFIG /isolinux/isolinux.cfg
APPEND /isolinux/ preseed/file=/cdrom/preseed.cfg
Wenn ich jedoch die Datei im Setup angebe, wird diese nur mit /cdrom/ erkannt. Aus welchem Grund auch immer? Ich habe allerdings auch schon beides getestet.
Die Variante mit der initrd finde ich nicht ganz so gut, da ich bei Änderungen jedes mal eine neue ISO erstellen muss. Das hat übrigens auch nicht wirklich funktioniert.
- heisenberg
- Beiträge: 3540
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: automatische Installation
Sorry habe die Datei nicht gesehen.
Auszug aus der Preseeding-Dokumentation(https://www.debian.org/releases/stable/ ... 02.html.en):
Demzufolge sollte preseed/file=/cdrom/preseed.cfg falsch sein und preseed/file=/hd-media/preseed.cfg sollte richtig sein.
Ansonsten wundert mich in der folgende Zeile ...
speziell das alleinstehende /isolinux/. Ich frage mich ob das richtig ist und würde das im Zweifelsfall weglassen.
Code: Alles auswählen
DEFAULT loadconfig
LABEL loadconfig
CONFIG /isolinux/isolinux.cfg
APPEND /isolinux/ preseed/file=/cdrom/preseed.cfg
Code: Alles auswählen
- if you're installing from USB media (put the preconfiguration file in the
toplevel directory of the USB stick):
preseed/file=/hd-media/preseed.cfg
Ansonsten wundert mich in der folgende Zeile ...
Code: Alles auswählen
APPEND /isolinux/ preseed/file=/cdrom/preseed.cfg
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: automatische Installation
Aber du hast schon gelesen was ich geschrieben habe?joe2017 hat geschrieben:26.07.2018 09:56:31Ich weiß, ich habe einen USB Stick und in die Config müsste eigentlich preseed/file=/hd-media/preseed.cfg geschrieben werden.
Wenn ich jedoch die Datei im Setup angebe, wird diese nur mit /cdrom/ erkannt. Aus welchem Grund auch immer? Ich habe allerdings auch schon beides getestet.
Ich habe auch nur wie in der Beschreibung angegeben, den Inhalt an die bestehende APPEND Zeile angehängt. Meine Original Datei sieht demzufolge so aus:
Code: Alles auswählen
DEFAULT loadconfig
LABEL loadconfig
CONFIG /isolinux/isolinux.cfg
APPEND /isolinux/
Re: automatische Installation
Ich habe während des Setups mal in die Konsole ALT+F2 gewechselt und hier in das /var/log/syslog geschaut. Wenn ich hier nach meiner preseed.cfg suche finde ich keinen Eintrag. Dies müsste bedeuten, dass erst gar nicht versucht wird eine Datei zu laden oder?
- heisenberg
- Beiträge: 3540
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: automatische Installation
Nein. Das heisst erst mal dass da nichts geloggt wird. D. h. das ist keine Information, aus der Du etwas ableiten kannst.
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: automatische Installation
Also aktuell funktioniert die automatische Installation nur wenn ich die Datei/Pfad währed des Sutups angebe. Automatisch wird die Datei nicht geladen?
Kann es sein, dass wenn am Ende ein Script (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) ausgeführt wird, keine Drucker in CUPS installiert werden kann? Mein script läuft sauber durch, lediglich mein aufgerufenes Drucker Script funktioniert nicht. Oder kann ich an dieser Stelle kein Script aus dem Script aufrufen?
Kann es sein, dass wenn am Ende ein Script (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) ausgeführt wird, keine Drucker in CUPS installiert werden kann? Mein script läuft sauber durch, lediglich mein aufgerufenes Drucker Script funktioniert nicht. Oder kann ich an dieser Stelle kein Script aus dem Script aufrufen?
Re: automatische Installation
Also ich hab die Drucker Installation jetzt mal manuell in das erste Script geschrieben. Auch hier wird kein Drucker installiert.
Kann es sein, dass an dieser Stelle noch kein CUPS zur Verfügung steht?
Code: Alles auswählen
sudo lpadmin -p "Printer" -E -v socket://IP -m "driver"
Re: automatische Installation
ja, das ist zu früh. Erst nach dem 1. Start, wenn der cupsd läuft, kannst du diesen Befehl absetzen. Das sudo ist mMn auch überflüssig.
Je mehr Anpassungen an den Systemen du vornehmen mußt, desto schneller gerätst du an die Limit vom normalen d-i und den Möglichkeiten, die er dir zur Verfügung stellt. Wenn es deine Zeit erlaubt, schiel schonmal in Richtung ansible. Da gibt es tonnenweise „Module“, die dir helfen die Systeme so zu konfigurieren, wie du es brauchst. Nach der Grundinstallation könnte ein config-management tool wie ansible aufgerufen werden und die restlichen Vorgaben herstellen.
Je mehr Anpassungen an den Systemen du vornehmen mußt, desto schneller gerätst du an die Limit vom normalen d-i und den Möglichkeiten, die er dir zur Verfügung stellt. Wenn es deine Zeit erlaubt, schiel schonmal in Richtung ansible. Da gibt es tonnenweise „Module“, die dir helfen die Systeme so zu konfigurieren, wie du es brauchst. Nach der Grundinstallation könnte ein config-management tool wie ansible aufgerufen werden und die restlichen Vorgaben herstellen.
Re: automatische Installation
Nur falls es jemanden interessiert wie ich das mit der Druckerinstallation gelöst habe.
- Jeder meiner Rechner hat mehrere Drucker installiert
- Meine Drucker haben eine zugeordnete Nummer (001,002,003...)
- Ich habe eine CSV Datei in welcher mein Rechnername und die Nummern von dem zu installierenden Drucker steht
- Ich habe eine CSV Datei in welcher alle meine Druckerinformationen stehen (Nummer(001),IP,Driver,Name,Location)
- Ich lese meine 1.CSV Datei ein und ziehe mir die zu installierenden Druckernummern
- Ich baue eine Schleife mit den Druckernummern und lese die 2.CSV ein um die Informationen (Nummer(001),IP,Driver,Name,Location) für die Installationen zu erhalten
- Da der CUPS noch nicht gestartet ist, kann ich die Installation (lpadmin -p $Name -E -v socket://$IP -m $Driver -L $Location) noch nicht ausführen
- Daher schreibe ich mit CAT alle Installationen in eine Datei (druckerinstallation.sh)
- Bei jedem Computerstart lasse ich ein Script mittels eines Service (/etc/systemd/system/selfservice.service) ausführen
- Dieses Script prüft, ob das zuvor angelegte Script (druckerinstallation.sh) vorhanden ist, und wenn ja wird dieses ausgeführt
- anschließend lösche ich noch automatisch das angelegte Script (druckerinstallation.sh)
- Jeder meiner Rechner hat mehrere Drucker installiert
- Meine Drucker haben eine zugeordnete Nummer (001,002,003...)
- Ich habe eine CSV Datei in welcher mein Rechnername und die Nummern von dem zu installierenden Drucker steht
Code: Alles auswählen
Client01,001,005,015
Client02,006,022,015
- Ich lese meine 1.CSV Datei ein und ziehe mir die zu installierenden Druckernummern
- Ich baue eine Schleife mit den Druckernummern und lese die 2.CSV ein um die Informationen (Nummer(001),IP,Driver,Name,Location) für die Installationen zu erhalten
- Da der CUPS noch nicht gestartet ist, kann ich die Installation (lpadmin -p $Name -E -v socket://$IP -m $Driver -L $Location) noch nicht ausführen
- Daher schreibe ich mit CAT alle Installationen in eine Datei (druckerinstallation.sh)
Code: Alles auswählen
#!/bin/bash
lpadmin -p $Name -E -v socket://$IP -m $Driver -L $Location
lpadmin -p $Name -E -v socket://$IP -m $Driver -L $Location
lpadmin -p $Name -E -v socket://$IP -m $Driver -L $Location
usw...
- Dieses Script prüft, ob das zuvor angelegte Script (druckerinstallation.sh) vorhanden ist, und wenn ja wird dieses ausgeführt
- anschließend lösche ich noch automatisch das angelegte Script (druckerinstallation.sh)
Re: automatische Installation
Das ist aktuell noch das einzige Problem. Ich muss während der Installation mit meinem USB Stick (Advanced - Auto install) immer die Preseed Datei angeben.joe2017 hat geschrieben:27.07.2018 12:14:42Also aktuell funktioniert die automatische Installation nur wenn ich die Datei/Pfad währed des Setups angebe. Automatisch wird die Datei nicht geladen?
Code: Alles auswählen
file:///cdrom/preseed.cfg
Komisch ist auch immer noch, dass ich obwohl ich einen USB Stick einsetze, während der Installation file:///cdrom/preseed.cfg anstatt file:///hd-media/preseed.cfg angeben muss? Nicht das dies schlimm wäre... ist nur irgendwie seltsam und irreführend. Da muss man erstmal drauf kommen.
Re: automatische Installation
Ich habe mein altes Script ausgebuddelt und für stretch angepaßt. Das integriert die preseed.cfg - vllt. hilft es dir ja weiter:
https://gist.github.com/ThorstenS-linux ... 563c8149ac
Wenn das klappt, kannst du dir ja noch die Bootmenüs anpassen vor dem Einpacken als neues ISO, damit die Sache automatisch abläuft.
https://gist.github.com/ThorstenS-linux ... 563c8149ac
Wenn das klappt, kannst du dir ja noch die Bootmenüs anpassen vor dem Einpacken als neues ISO, damit die Sache automatisch abläuft.
Re: automatische Installation
Das werde ich mir gleich mal ansehen.
Ich habe dir Frage zwar schon in dem anderen Post gestellt, aber wahrscheinlich hast du das nicht gesehen und hast evtl Erfahrungen damit gemacht.
Ich führe im Anschluss der Automatischen Installation ein Script aus (d-i preseed/late_command string). Kann man in dem Script eine Eingabe realisieren? Das Script läuft ja im Hintergrund. Im Vordergrund wird das Setup angezeigt.
Ich habe dir Frage zwar schon in dem anderen Post gestellt, aber wahrscheinlich hast du das nicht gesehen und hast evtl Erfahrungen damit gemacht.
Ich führe im Anschluss der Automatischen Installation ein Script aus (d-i preseed/late_command string). Kann man in dem Script eine Eingabe realisieren? Das Script läuft ja im Hintergrund. Im Vordergrund wird das Setup angezeigt.
Re: automatische Installation
Jain
Da kratzt damit an den Möglichkeiten, die dir der d-i bietet.
Du kannst ein eigenes udeb bauen und den Installer benutzen, dem User eine Frage zu stellen. Die Antwort kannst du dann mit Shellmitteln auslesen und weiterverarbeiten.
Ich glaube zeitlich schneller kommst du ans Ziel, wenn du diese Frage nach dem 1. Reboot stellst. Ich hab grad Urlaub und bin viel unterwegs. eine detailierte Antwort muß ich dir schuldig bleiben.
Ansonsten ist diese Aufgabe mit simple-cdd lösbar. Installiere das Paket und schau dir die udebs-Dateien im Beispielordner an, z.B. ltsp.udebs - siehe https://packages.debian.org/stretch/all ... d/filelist
Das ist mMn die einfachste Möglichkeit einen professionellen Installer mit eigenen Fragen zu bauen.
Da kratzt damit an den Möglichkeiten, die dir der d-i bietet.
Du kannst ein eigenes udeb bauen und den Installer benutzen, dem User eine Frage zu stellen. Die Antwort kannst du dann mit Shellmitteln auslesen und weiterverarbeiten.
Ich glaube zeitlich schneller kommst du ans Ziel, wenn du diese Frage nach dem 1. Reboot stellst. Ich hab grad Urlaub und bin viel unterwegs. eine detailierte Antwort muß ich dir schuldig bleiben.
Ansonsten ist diese Aufgabe mit simple-cdd lösbar. Installiere das Paket und schau dir die udebs-Dateien im Beispielordner an, z.B. ltsp.udebs - siehe https://packages.debian.org/stretch/all ... d/filelist
Das ist mMn die einfachste Möglichkeit einen professionellen Installer mit eigenen Fragen zu bauen.
Re: automatische Installation
Eigentlich geht es nicht um eine eigene Frage. Wenn ich einstellen könnte, dass trotz der Automatischen Installation der Rechnername abgefragt wird, wäre alles perfekt!
Re: automatische Installation
du kannst beim booten tab drücken und hostname=horst54 setzen. Das übernimmt der d-i.
Wenn du dir die syslinux.cfgs selbst bastelst, kannst du dir für jeden Servernamen einen Menüpunkt vorsehen. So sah es bei mir aus, wobei connection und raid von Scripten ausgewertet wurden, die /proc/cmdline gelesen haben.
Wenn du dir die syslinux.cfgs selbst bastelst, kannst du dir für jeden Servernamen einen Menüpunkt vorsehen. So sah es bei mir aus, wobei connection und raid von Scripten ausgewertet wurden, die /proc/cmdline gelesen haben.
Code: Alles auswählen
MENU BEGIN
MENU TITLE custom Server (HW-Raid/ Single Disk)
LABEL return_main
MENU LABEL .. eine Ebene hoch
MENU EXIT
text help
Die Auswahl eines Eintrags startet sofort die automatische Installation.
ACHTUNG: Die Platten werden ohne Rueckfrage ueberschrieben.
endtext
label horst54
menu label horst54
kernel /install.amd/vmlinuz
append language=de country=DE locale=de_DE.UTF-8 keyboard-configuration/xkb-keymap=de(nodeadkeys) mirror/save=true preseed/file=/cdrom/simple-cdd/default.preseed simple-cdd/profiles=custom_base priority=critical video=vesa:ywrap,mtrr vga=788 initrd=/install.amd/gtk/initrd.gz raid=hw connection=DSL hostname=horst54
label horst55
…
Re: automatische Installation
Wenn ich TAB drücke, wird mir der String angezeigt welcher geladen wird?
Hier steht
In welchem File steht diese Info?
Hier steht
Code: Alles auswählen
install.amd/vmlinuz auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet
Re: automatische Installation
In der isolinux/adgtk.cfg.
Re: automatische Installation
Suuuper! Vielen Dank!
Ich hab einfach in die Datei adtxt.cfg folgendes angehängt
Original
Meine Datei
Wenn ich von meinem USB Stick Boote wähle ich Advanced und automatische Installation aus.
Kann man hier evtl mir einem READ HOSTNAME arbeiten? Wahrscheinlich nicht oder?
Ich hab einfach in die Datei adtxt.cfg folgendes angehängt
Original
Code: Alles auswählen
Automated install
kernel /install.amd/vmlinuz
append auto=true priority=critical vga=788 initrd=/install.amd/initrd.gz --- quiet
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
Kann man hier evtl mir einem READ HOSTNAME arbeiten? Wahrscheinlich nicht oder?