Ich bin eher ein Entwickler von Linux-Anwendungen als ein Administrator. Im Laufe der Zeit habe ich Server erstellt und gewartet, manchmal um Dienste anzubieten, meistens nur um die Anwendungen zu entwickeln, an denen ich arbeite.
Vor langer Zeit, als ich eine Datei in meinem Konto erstellte, um Notizen darüber zu machen, was ich auf jedem Computer getan habe, damit ich das replizieren konnte, als ich auf andere Computer migrierte.
Heutzutage installiere ich eine private Trac-Installation, installiere das Blog-Plugin und mache mir dann Notizen zu allem, was ich installiere, zu den meisten von mir ausgeführten Befehlen sowie zur Ausgabe. Dies bietet mir eine Kombination aus Wiki und Blog, die ich als "Kapitänsprotokoll" sehr nützlich finde. Ich mache das meistens, damit es mir bei der Migration auf eine neue saubere Maschine viel leichter fällt, sie aufzurufen.
Und doch bin ich immer wieder erstaunt, wenn ich sehe, dass andere dies einfach installieren, löschen, ausführen, diese Konfiguration einrichten, ... ohne auf irgendeine Weise zu notieren, was sie tatsächlich tun.
Was machen SIE und welche Tools stehen zur Verfügung?
Ich interessiere mich besonders für den Übergang zwischen der Wartung einiger Maschinen für einige Personen und der Wartung mehrerer bis Dutzende von Maschinen, die einen echten Service bieten.
Was sind die Best Practices und wo finde ich gute Ressourcen?
Vielen Dank!
quelle
Antworten:
Die Antwort darauf ist definitiv das formale Konfigurationsmanagement. Die drei großen Konkurrenten in diesem Bereich sind heutzutage Chef, Puppet und Cfengine. Grundsätzlich müssen Sie den Entwicklungsansatz auf die Systemadministration anwenden: Schreiben Sie ein 'Programm', das den Maschinenzustand definiert, und wenden Sie dieses an (dies ist offensichtlich eine grobe Vereinfachung).
Die Wahrheit ist, dass viele von uns verkrusteten Linux-Admins vom Typ Halsbart Maschinen auf magische Weise konfigurieren, weil wir das Wissen über viele Jahre der Wiederholung vollständig verinnerlicht haben. Ich kenne ungefähr die Liste der Konfigurationsdateien, die ich auf einem bestimmten Computer berühren muss, und kann diese aus dem Speicher von Hand bearbeiten. Das ist eigentlich eine schreckliche Art, Dinge zu tun, besonders wenn Sie mehr als einen Server oder mehr als einen Systemadministrator haben. Die manuelle Bearbeitung einer Konfigurationsdatei ist immer ein Zeichen für schlechte Planung und schlechte Verwaltung.
Ich bin ein großer Fan von Clonezilla plus PXE-Boot, um zunächst automatisch ein System aufzurufen und genügend Details in eine Kickstart-Konfiguration zu integrieren, damit sich der Computer im Netzwerk befindet und das CM-Tool Ihrer Wahl ausführt. Alles, was über die grundlegendste Logik "System hochfahren, in das Netzwerk stellen" hinausgeht, sollte in Ihrem CM-Tool enthalten sein, nicht in Ihrem ursprünglichen System-Image oder Kickstart.
Als Referenz verwalte ich derzeit etwa 10.000 Unix-Server.
quelle
Ihre Frage nähert sich dem aus der Perspektive der wenigen Maschinen. Es geht nicht darum, Ihre Befehle aufzuzeichnen. Dazu sollte der Skriptbefehl das bekommen, wonach Sie fragen. Die eigentliche Lösung für die Skalierung besteht jedoch darin, Konfigurationen schnell zu reproduzieren und Änderungen innerhalb dieser Konfigurationen zu verwalten. Mit Tools wie Puppet und Chef können Sie das tun. Die Rezepte werden normalerweise in einem Revisionskontrollsystem gespeichert, sodass Sie einen vollständigen Überblick über alle an der Konfiguration vorgenommenen Änderungen haben und bei Bedarf auf frühere Konfigurationen zurückgreifen können.
Wenn diese Tools mit PXE-Boot und Preseed oder Kickstart kombiniert werden, können Sie schnell Maschinen für verschiedene Rollen bereitstellen.
Es ist keine schlechte Idee, diese Art von Tools zu verwenden, selbst wenn Sie nur wenige Computer für das Änderungsmanagement und die Nachverfolgung verwalten.
quelle