Wie pflegen Sie 40 Kopien derselben Computerinstallation?

511
chr_lt_ney

Ich versuche 40 fest installierte Terminals (mit Touchscreen, ohne angeschlossene Maus oder Tastatur) in einer Umgebung. Auf allen 40 PCs ist eine abgespeckte Version von Ubuntu und Chromium installiert, deren einzige Aufgabe darin besteht, eine Webanwendung im Vollbildmodus zu bedienen.

Nun, hier ist das Problem: Vor einigen Tagen hatten wir einen Stromausfall, alle Terminals wurden heruntergefahren. Als ich sie alle neu gestartet habe, funktionierte kein Touchscreen, und ich habe keine Ahnung, warum. Durch die Neuinstallation des Systems mit einem CloneZilla-Flashlaufwerk wurde das Problem jedoch behoben. Das war eine Menge Arbeit - Tastatur und Flash-Laufwerk anschließen, BIOS-Einstellungen ändern, um vom Flash-Laufwerk zu booten, alle 40 Terminals neu zu installieren.

Wie kann das besser gemacht werden? Mein Traumszenario wäre, eine Änderung vorzunehmen (sagen wir, ich hätte gerne einen kleinen NodeJs-Server an jedem Terminal oder würde den SSH-Zugriff konfigurieren). Ich habe mir einen PXE-Server angesehen, aber das dauert anscheinend VIELE Zeit (800 MB Image x 40 dauert ziemlich lange).

Hat jemand eine bessere Lösung, wie dieses Setup besser verwaltet werden kann?

0

2 Antworten auf die Frage

4
Austin Hemmelgarn

Nun, PXE muss kein Fall sein, in dem Sie das Image beim Booten auf jeden Server herunterladen. Tatsächlich bestand die traditionellere Verwendung (zumindest im Umgang mit UNIX-Systemen) darin, plattenlosen Systemen für Systeme bereitzustellen, deren Root-Dateisystem auf NFS (oder heutzutage möglicherweise ein anderes Netzwerk-Dateisystem) war. Ich bin mir nicht ganz sicher, wie gut das für Sie funktionieren könnte (es tauscht die Zeitprobleme von PXE gegen einen einzelnen Ausfallpunkt auf dem NFS-Server aus), aber es lohnt sich vielleicht, es zu betrachten. Sie können ähnliche Funktionen auch mit iSCSI oder NBD ausführen, obwohl die Einrichtung etwas komplizierter ist.

In ähnlicher Weise wie SystemRescueCD können Sie auch die Möglichkeit des Kettenladens prüfen . Beim NetBoot muss nur syslinux, der Kernel und die erste RAM-Disk über TFTP geladen werden. Anschließend kann das eigentliche System-Image über ein anderes Protokoll geladen werden (beispielsweise, wenn ich arbeite, tun wir dies über HTTP). TFTP ist ein schrecklich ineffizientes Protokoll (es muss jedes Block einzeln bestätigt werden, bevor der nächste Block gesendet werden kann, und verwendet standardmäßig eine sehr kleine Blockgröße). Dadurch kann der Prozess erheblich beschleunigt werden (wir haben das Netzwerk, in dem ich arbeite Auf netboot SystemRescueCD eingerichtet und laden Sie das System-Image über HTTP anstelle von TFTP. Dadurch wird die Bootzeit auf den Systemen, auf denen ich es beim Einrichten getestet habe, von fast 15 Minuten auf etwa 3 reduziert.

Wenn Sie etwas auf Ubuntu basierendes Betriebssystem verwenden, können Sie eine Kombination aus MAAS und Juju verwenden, da dies der Standard-Stack für Ubuntu ist.

Abgesehen davon, wenn Sie sicher davon ausgehen können, dass Massenausfälle, wie Sie sie gesehen haben, selten sind (und Sie wahrscheinlich nicht alle 40 Systeme gleichzeitig neu installieren müssen), könnten Sie sich ein automatisiertes Management-Tool anschauen. Es hilft nicht bei der Installation von Systemen, aber es würde die Bereitstellung von Konfigurationsänderungen oder Paketen auf den Systemen erheblich vereinfachen. Ich mag Ansible besonders für diese Art von Dingen, vor allem, weil es so einfach ist, sich einzurichten (Sie benötigen buchstäblich nur ein SSH-Login ohne Kennwörter und ein einzelnes bestimmtes Python-Paket, das auf den Systemen installiert ist, die Sie verwalten möchten) und die Tatsache dass es eine zustandsorientierte (meistens) deklarative Sprache verwendet, um Aufgaben zu erledigen, die wirklich leicht zu erlernen ist. Marionette, Chef und Salz sind die anderen drei populären Optionen für diese Art von Dingen, aber ich habe noch keine persönliche Erfahrung mit ihnen gemacht, abgesehen von einer flüchtigen Bewertung. Daher kann ich nicht wirklich beraten, welche für Sie am besten geeignet ist.

Vielen Dank, das war eine sehr ausführliche Antwort! Ich habe mich für das HTTP-Ding entschieden und muss fragen: Also booten Sie grundsätzlich in eine SystemRescureCD mit TFTP, und von da an, wie würde / könnte ich mit HTTP weitermachen? Mein TFTP-Server ist Windows, die Clients sind Ubuntu (ich könnte problemlos auch mit den Optionen für Festplatten arbeiten). chr_lt_ney vor 6 Jahren 0
@chr_lt_ney Der beste Rat, den ich geben kann, ist die offizielle Dokumentation zu SystemRescueCD, die sich hier befindet: http://www.system-rescue-cd.org/manual/PXE_network_booting/. Ich habe noch nie versucht, dies mit einem Windows-TFTP-Server einzurichten. Abgesehen davon gibt es wahrscheinlich nicht viele Ratschläge, die ich geben kann. Austin Hemmelgarn vor 6 Jahren 0
0
psusi

Ich empfehle auch den PXE-Startvorgang ohne Festplatte, aber als Alternative könnten Sie einfach ein System sichern und dann in allen Fällen alle 40 wiederherstellen. Das wäre schneller als eine 40-malige Neuinstallation.