Debian-PC clonen für Dummies?

OP #7639247
Lesenswert?

Guten Morgen,

man möchte mehrere gleiche PC mit einer identischen Debian-Installation. Also installiert man einen, richtet alles ein und verpackt / mit tar, ungefähr so:

1
apt-get clean
2
rm -rf /root/.cache
3
rm -rf /root/.ssh
4
rm -rf /home/*/.ssh
5
set -e
6
mount -t tmpfs tmpfs /tmp
7
mandb
8
updatedb
9
mount -o remount,ro /
10
tar --create --zstd --file /tmp/root.zst --one-file-system /

Diese root.zst und ein Entpack-Script kopiert man auf einen bootfähigen USB-Stick, so, dass das Script automatisch startet. Sobald ein PC von dem Stick bootet, wird seine Festplatte partitioniert, formatiert und die root.zst drauf entpackt. Das wäre für Leute, die sich auskennen, optimal.

Es gibt noch zwei ungelöste Aufgaben:

  • wie kann man Dummies davor schützen, ihren PC platt zu machen?
  • wie kann das Script feststellen, ob es auf einem kompatiblen PC läuft? Es wird wahrscheinlich 2 verschiedene PC-Modelle geben, die natürlich™ unterschiedliche Images brauchen. Wenn die Erkennung zuverlässig funktioniert, wäre auch die erste Aufgabe fast(?) gelöst.

DMI war wohl für den Zweck gedacht, aber funktioniert das? Es gibt oder gab /sys/firmware/dmi/ und /sys/class/dmi/id/. Allgemein scheint /sys/class/ stabiler und aktueller zu sein, weiß jemand genaueres?

Welche Sicherheitsabfragen könnte man noch machen? Wenn die Platte fabrikneu ist, darf man auf jeden Fall installieren. Wenn schon die gleiche Installation drauf ist, ist es wohl ein Update, aber wie viel Unterschied akzeptiert man? Im Extremfall war etwas ganz anderes installiert und man möchte man das oder eine total kaputte Installation ersetzen.

Gast #7639268
Lesenswert?

Bauform B. schrieb:

wie kann man Dummies davor schützen, ihren PC platt zu machen?

Etwa so:

Sind sie sicher, dass sie alle Programme und Daten auf ihrem PC verlieren wollen?

ja

Sind sie ganz sicher, dass sie ihren PC platt machen wollen?

ja

Antworten sie mit "Ich bin ganz sicher!"

ich bin ganz sicher

Antworten sie mit "Ich bin ganz sicher!"

Ich bin ganz sicher!

Ihr PC wird jetzt platt gemacht. Wollen sie nicht fortfahren?

ja

Programm wurde abgebrochen.

ach Scheiße, ich wollte doch fortfahren. Nochmal...

Sind sie sicher, dass sie alle Programme und Daten auf ihrem PC verlieren wollen?

ja

Sind sie ganz sicher, dass sie ihren PC platt machen wollen?

ja

Antworten sie mit "Ich bin ganz sicher!"

ich bin ganz sicher

Antworten sie mit "Ich bin ganz sicher!"

Ich bin ganz sicher!

Ihr PC wird jetzt platt gemacht. Wollen sie abbrechen?

nein

Wie heißt der 4. Präsident der USA?

keine Ahnung

Programm wurde abgebrochen.

grrrrrrr

#7639461
Lesenswert?

Bauform B. schrieb:

man möchte mehrere gleiche PC mit einer identischen Debian-Installation.

Was spricht gegen die dafür vorgesehenen klassischen Werkzeuge wie FAI, eine preseed.cfg für den Debian-Installer und / oder zum Beispiel Ansible?

Es wird wahrscheinlich 2 verschiedene PC-Modelle geben, die natürlich™ unterschiedliche Images brauchen. Wenn die Erkennung zuverlässig funktioniert, wäre auch die erste Aufgabe fast(?) gelöst.

Mir persönlich erscheint die Idee mit den Images keine besonders gute zu sein, da würde ich höchstens ein Minimal-Debian mit OpenSSH-Zugang und einem PubKey ausrollen und die Büchsen dann mit Ansible installieren und konfigurieren. Im Endeffekt hättest Du damit auch gleich noch den eleganten Vorzug, eine fertige Ansible-Infrastruktur zur Pflege der Maschinen zu haben, denn sonst könnte es "mit einer identischen Debian-Installation" womöglich schnell vorbei sein.

#7639487
Lesenswert?

Bauform B. schrieb:

man möchte mehrere gleiche PC mit einer identischen Debian-Installation. Also installiert man einen, richtet alles ein und verpackt / mit tar, ungefähr so:

Da solltest du aber noch etwas mehr aufräumen. Mindestens:

  • Machine-Id löschen [1]
  • Cloud-Init aufräumen [2]

Der richtige Weg ist aber eine preseed.cfg.

[1] https://wiki.debian.org/MachineId

[2] https://cloudinit.readthedocs.io/en/latest/reference/cli.html#clean

Gast #7639537
Lesenswert?

Ganz Toll sind "kryptische" Befehle im Netz, die man vorschnell ins Terminalfenster kopiert, ohne nachzuforschen, was sie genau tun. Damit hat man schnell etwas falsches gelöscht oder irgend etwas installiert, dessen Funktion einem nicht mal klar ist.

Nachtrag: Ich hatte hier ein konkretes Beispiel genannt, aber das war mir im Nachhinein doch zu riskant.

OP #7639834
Lesenswert?

Ein T. schrieb:

Bauform B. schrieb:

man möchte mehrere gleiche PC mit einer identischen Debian-Installation.

Was spricht gegen die dafür vorgesehenen klassischen Werkzeuge wie FAI, eine preseed.cfg für den Debian-Installer und / oder zum Beispiel Ansible?

Nun, tar ist noch klassischer ;) Außerdem muss man nach preseed noch jede Menge von Hand einrichten. Ich hab schon versucht, das zu minimieren, aber es bleibt Handarbeit. Besonders, wenn man ein read-only root haben will.

Ein T. schrieb:

Mir persönlich erscheint die Idee mit den Images keine besonders gute zu sein, da würde ich höchstens ein Minimal-Debian mit OpenSSH-Zugang und einem PubKey ausrollen und die Büchsen dann mit Ansible installieren und konfigurieren.

Warum so umständlich?

Im Endeffekt hättest Du damit auch gleich noch den eleganten Vorzug, eine fertige Ansible-Infrastruktur zur Pflege der Maschinen zu haben

OK, wenn man das nutzen könnte... Aber dazu müssten die online sein. Es muss (auch) per USB-Stick funktionieren.

Tim K. schrieb:

Da solltest du aber noch etwas mehr aufräumen. Mindestens:

  • Machine-Id löschen

Vielen Dank für den Tipp! Die war mir noch garnicht aufgefallen, weder positiv noch negativ -- bis jetzt. Das scheint eine aufgewärmte hostid zu sein, sowas will man eigentlich nicht haben. Auf jeden Fall ist es ein Geschenk für die Werbeindustrie, mindestens chrome benutzt die. Andererseits darf man sie bei jedem boot neu auswürfeln. Außerdem kopiert systemd /var/lib/dbus/machine-id nach /etc/machine-id, aber erstere kann ein Link auf /etc/machine-id sein. Eine richtige UUID ist es auch formal nicht und die man page fehlt auch. Eine schöne WTF-Sammlung :) Offensichtlich und erfahrungsgemäß kann man die ignorieren.

Der richtige Weg ist aber eine preseed.cfg.

Nein, siehe oben.

#7639848
Lesenswert?

Bauform B. schrieb:

Es gibt noch zwei ungelöste Aufgaben:

  • wie kann man Dummies davor schützen, ihren PC platt zu machen?

Sowas braucht auch Übung, also ist "Dummies" schon mal unlogisch.

Bauform B. schrieb:

  • wie kann das Script feststellen, ob es auf einem kompatiblen PC läuft?

Könnte man sich bei Windows abschauen. Haskell Plattform hat auch eine Überprüfung, die allerdings erst nachdem alles korrekt installiert ist funktioniert. Besser wäre gewesen, schon vorher den Dienst zu verweigern, dann hätte man sich das Herumgeiern mit Speicherzugriff-Umleitungen oder ähnlichem erspart.

#7640343
Lesenswert?

Bauform B. schrieb:

Ein T. schrieb:

Mir persönlich erscheint die Idee mit den Images keine besonders gute zu sein, da würde ich höchstens ein Minimal-Debian mit OpenSSH-Zugang und einem PubKey ausrollen und die Büchsen dann mit Ansible installieren und konfigurieren.

Warum so umständlich?

++ für ansible, das klingt aufwändiger als es ist

Im Endeffekt hättest Du damit auch gleich noch den eleganten Vorzug, eine fertige Ansible-Infrastruktur zur Pflege der Maschinen zu haben

OK, wenn man das nutzen könnte... Aber dazu müssten die online sein. Es muss (auch) per USB-Stick funktionieren.

wenn die Kisten komplett ohne Internet/Netzwerk dastehen, dann sollte auch ein einfacher Festplattenklon funktioniere? wenn die Kiste nicht kompatibel ist, dann startet das System eh nicht, sonst gehts.

Und ohne zentrale Verwaltung ala Ansible o.ä. sind die Kisten zu genau einem Zeitpunkt identisch: nach der Installation. Danach werden die Kisten unweigerlich auseinander driften...

OP #7640374
Lesenswert?

Dieter D. schrieb:

Mehr Aufwand, aber universeller wäre, Du würdest einen Referenzrechner aufsetzen und aus der Distro mit allem was Du noch installiert hast ein eigenes Installationsmedium erzeugen, quasi Deine eigene Distro machen.

Genau das habe ich vor; nur "eigene Distro" ist etwas übertrieben.

Daniel F. schrieb:

wenn die Kisten komplett ohne Internet/Netzwerk dastehen, dann sollte auch ein einfacher Festplattenklon funktioniere?

Richtig. Aber warum wäre das mit Netzwerk anders?

wenn die Kiste nicht kompatibel ist, dann startet das System eh nicht, sonst gehts.

Schön wär's, geradezu traumhaft. Praktisch startet das und auf den ersten Blick läuft alles, nur die ACPI Tabellen sind vermurkst und syslog wird mit Fehlermeldungen voll gemüllt. Oder so. PCs halt...

Beitrag #7640593 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren