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.
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
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.
Bauform B. schrieb:> ok, es ist Freitag :)
Stimmt. Am besten den Hund davor setzen. Im Internet nobody knows a dog
is sitting there. Dann ist es sicher.
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.
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.
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.
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.
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...
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...