Ist es möglich, eine Variable über die Startaufforderung zum Debian-Installationsprogramm hinzuzufügen, damit diese Variable in einer vorab festgelegten Datei verwendet werden kann?
Insbesondere versuche ich das folgende Problem zu lösen:
Wir haben ein ziemlich umfangreiches Skript nach der Installation, das normalerweise von einem Server heruntergeladen wird. Aber jetzt möchte ich Packer-Images erstellen und das Skript nach der Installation zusammen mit den anderen Packer-Dateien in der Versionskontrolle belassen. Für den Zugriff auf den Preseed kann ich im Boot-Befehl "preseed / url = http: // {{.HTTPIP}}: {{.HTTPPort}} / preseed.cfg" ausführen. Aber jetzt möchte ich, dass das Installationsprogramm das Skript nach der Installation von demselben Speicherort herunterlädt.
Derzeit sieht der Hook nach der Installation folgendermaßen aus:
d-i preseed/late_command string wget -q -O /tmp/postinstall.sh http://our.public.server/postinstall.jessie.sh ; sh /tmp/postinstall.sh
Im Idealfall möchte ich etwas tun wie:
d-i preseed/late_command string wget -q -O /tmp/postinstall.sh http://{{ .HTTPIP }}:{{ .HTTPPort }}/postinstall.jessie.sh ; sh /tmp/postinstall.sh
Aber natürlich wird das Debian-Installationsprogramm diese nicht durch die erforderlichen Werte ersetzen. Daher dachte ich, dass es möglich sein könnte, umgebungsvariablenähnliche Variablen an das Installationsprogramm zu übergeben, die wir in der vorab festgelegten Datei verwenden können.
Alle Hinweise oder Tipps sind willkommen!
BEARBEITEN: Es wurde versucht, den Befehl late_command zum Startbefehl hinzuzufügen, aber das wurde nicht erkannt.
BEARBEITEN: Vorab versucht / ausgeführt, aber in einer anderen Umgebung ausgeführt, in der der Befehl in-target nicht zulässig ist.
EDIT: Dies kann eine Problemumgehung sein: Wie führe ich Befehle in einer Debian-Preseed-Datei zusammen? Aber ich würde es vorziehen, das Skript in einer separaten Datei zu haben. Wenn es nicht möglich ist, ist es jedoch nicht möglich.
quelle