Preseeding: Eigener Mirror wird nicht akzeptiert

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 12.04.2024 19:59:57

Hallo zusammen,

ich habe hier eine Preseeding-Installation. Die habe ich heute auf meinen eigenen Mirror umgestellt. Damit läuft die Installation nicht mehr automatisch durch (vorher mit Standardeinstellungen von einem offiziellen Debian-Mirror schon). Die Installation des Basissystems läuft automatisch durch. Nach dem Abschluss der Basisinstallation wird die zusätzliche Abfrage gestellt, welchen Mirror ich nehmen möchte.

Trage ich da meinen Mirror ein - den gleichen, den ich in der preseed.cfg habe, sowie das Verzeichnis auf dem Server, dann geht die Installation weiter. In /var/log/syslog des Debian-Installers steht auch keine irgendwie geartete Verbindungsaufnahme zu meinem Mirror drin - bevor ich den Mirror in der manuellen Abfrage eingetragen habe - danach schon.

Wenn ich meinen Mirror bei einer manuellen Installation angebe installiert das Debian auch ganz normal von dem Mirror.

Das ist der entsrechende Ausschnitt meiner preseed.cfg:

Code: Alles auswählen

# grep mirror preseed.cfg 
d-i mirror/country string manual
d-i mirror/protocol string https
d-i mirror/http/hostname string akira.debian.mydomain.de
d-i mirror/http/directory string /debian/ # habe ich auch schon ohne abschließenden / probiert. Ändert nix.
d-i mirror/http/proxy string
d-i mirror/udeb/suite string stable
d-i mirror/suite string stable # mirror/suite war per default nicht drin. habe ich mal testweise hinzugefügt. Ändert nix.
Der Mirror wird 4 x am Tag zu empfohlenen Zeiten synchronisiert. Ich habe den auch nochmal zusätzlich synchronisiert, um auszuschließen, dass da irgend etwas kaputt ist. Keine Änderung.

Diverse Informationen:

Hier ist das Syslog der Debian-Installation bis zur Abfrage des Mirrors: NoPaste-Eintrag42146
Hier die ftpsync.conf des lokalen Debian-Mirrors: NoPaste-Eintrag42147
Hier die volle preseed.cfg: NoPaste-Eintrag42148
Screenshot: Abfrage Mirror gallery/image/4784/source
Zuletzt geändert von heisenberg am 12.04.2024 20:10:19, insgesamt 1-mal geändert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 12.04.2024 20:09:21

Ich habe jetzt nochmal das hier ...

Code: Alles auswählen

d-i mirror/protocol string https
umgestellt auf ...

Code: Alles auswählen

d-i mirror/protocol string http
Jetzt habe ich im syslog diverse SSL-Fehler stehen:

Code: Alles auswählen

Certificate Verification Failed. The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Fehler in der Verifzierung des Zertifikates [IP: x.x.x.x 443]
...
No system certificates available. Try install ca-certificates.
...
Vielleicht ist meine Installer-CD-Vorlage für die angepasste Installation zu alt und die aktuellen LetsEncrypt-CAs sind da nicht drauf?
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
TRex
Moderator
Beiträge: 8093
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von TRex » 12.04.2024 20:17:14

Mit preseed hab ich seit glaub 20 Jahren nichts gemacht, gibts da keine Möglichkeit für n lokales Terminal während der Installation? Dann könntest du genau das verifizieren.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 12.04.2024 20:18:11

Ich habe ein Terminal. Dort habe ich mir ja auch das syslog rauskopiert. und die Fehlermeldungen gesehen.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
TRex
Moderator
Beiträge: 8093
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von TRex » 12.04.2024 20:20:05

Dann würde dir ein curl auf den Mirror doch die Antwort liefern, oder nicht?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 12.04.2024 20:27:47

Wenn es ein curl in der Phase gäbe, dann könnte ich das tun. ;-)

Ich habe jetzt nochmal meinen Installer gebaut. War vorher auf der Basis von 12.1.0 ist jetzt auf der Basis von 12.5.0. Gleicher Fehler.

Wenn ich das manuell im Terminal versuche:

Code: Alles auswählen

chroot /target
apt-get update
...
Certificate Verification Failed. The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Fehler in der Verifzierung des Zertifikates [IP: x.x.x.x 443]
...
No system certificates available. Try install ca-certificates.
...
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
TRex
Moderator
Beiträge: 8093
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von TRex » 12.04.2024 20:31:54

Ok. Ich hab ein paar Fragen im Kopf, aber vermutlich bringt es dich nur weiter, tatsächlich neuere Root-Zertifikate in dein Image zu packen.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 12.04.2024 20:36:52

Ich habe jetzt als workaround erst mal den Redirect http -> https aus dem Mirrorwebserver genommen. Damit geht das erst mal. Der Download von Paketen vom Mirror ist ja nicht sicherheitskritisch.

Ansonsten wäre das ja schon nicht schlecht, wenn der Installer da ca-certificates mit dabei hätte, dass LetsEncrypt-Zertifikate für die Installation akzeptiert werden. Vielleicht mache ich da mal ein Bugreport/Feature-Request auf.

Ansonsten war das ja die Erkenntnis das https als mirror/protocol nicht funktioniert, weil dann anscheinend die Mirroreinstellung als ungültig verworfen wird.

d-i mirror/protocol string https
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 16.04.2024 15:56:22

Ich habe jetzt nochmal geschaut, welche Scripte man definieren kann. Das sind so wie ich das sehe nur 3 Möglichkeiten:
  1. d-i preseed/early_command : sobald das preseed script gelesen wurde
  2. d-i partman/early_command : vor dem starten der partitionierung
  3. d-i preseed/late_command : am ende, mit noch vorhandenem, gemounteten /target
Bei 1) ist noch kein /target vorhanden. 2) ist auch zu früh. 3) ist viel zu spät.

Ich hatte jetzt überlegt, dass ich ein Script bei 1) bzw. 2) absetze und dann in den Hintergrund setze. Sobald dann /target erreichbar ist und apt-get bzw. bash unterhalb von /target verfügbar installiere ich ich openssl*.deb und ca-certificates*.deb von der Netinstall-ISO - dort ist es nämlich drauf. Leider bekomme ich das Script nicht in den Hintergrund. Weder ein sh-Wrapper in der Preseed-Datei mit & beendet, noch ein & im Script selbst helfen. das Script bleibt im Vordergrund.

Das ist das Script:

NoPaste-Eintrag42150

Im Syslog sehe ich dann, dass das Script bis zum Ende durchläuft bis zu "giving up".

Nachtrag

Es gibt auch noch Debiandebconf-utils. Das enthält das tool debconf-get-selections. Damit kann man sich alle preseeding-optionen anzeigen lassen:

Code: Alles auswählen

debconf-get-selections --installer
Da gibt's noch ein paar mehr Script-Hooks:

Code: Alles auswählen


# debconf-get-selections --installer| grep command

partman-base    partman/early_command   string
d-i     preseed/boot_command    string
d-i     preseed/command_failed  error
d-i     preseed/early_command   string
d-i     preseed/include_command string
d-i     preseed/late_command    string
Hilft leider alles nicht.

Nachtrag 2

Es gibt sogar schon ein ca-certificates.udeb, was vermutlich genau für den von mir vorgesehenen Zweck da ist. Allerdings wird das dann wohl deutlich komplizierter auf dem Level einen neuen custom Installer zu bauen.

Nachtrag 3

debconf-get-selections hat auch noch diese Einstellung zu Tage gefördert:

Code: Alles auswählen

d-i     debian-installer/allow_unauthenticated_ssl      boolean false
Das ist aber keinen Deut besser als plain http.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
Livingston
Beiträge: 1462
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von Livingston » 16.04.2024 18:51:49

Eine unorthodoxe Lösung: Man kann partman/early_command missbrauchen, um ab diesem Punkt die Installation komplett selbst in die Hand zu nehmen. In dem Script verstaut man dann Anweisungen zum Partitionieren, zum Erzeugen und Mounten von /target, debootstrap und vielleicht sogar noch ein chroot-Script, das dann innerhalb von /target ca-certificates.deb per dpkg verarztet, apt aufruft etc.
Hab ich mal gemacht, weil mir das Installer-eigene partman-Scriptformat zu unheimlich war. Insbesondere wollte ich RAID 5, ein cryptdevice und darin ein LVM einrichten.
Der Nachteil liegt auf der Hand: Ab diesem Punkt hilft dir der Installer kein bisschen mehr.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

Benutzeravatar
heisenberg
Beiträge: 3581
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Preseeding: Eigener Mirror wird nicht akzeptiert

Beitrag von heisenberg » 16.04.2024 22:07:26

Danke für den Vorschlag. Aber für mich: Never ever! Das bringt mir nix außer ganz viel Zusatzarbeit.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Antworten