Überblick
In gewisser Weise haben Sie hier zwei Fragen.
- Wie erstelle und verwalte ich Standardserver?
- Wie kann ich die Standardkonfiguration beibehalten und später Änderungen vornehmen?
Ich habe meine Antwort unten aufgeteilt und diese beiden Dinge getrennt behandelt, aber sie hängen sehr eng zusammen. Ich spreche hier die Technologielösungen an und nicht die Best Practices, die damit zusammenhängen, wie z. B. die Änderungskontrolle.
Wenn dies nicht den Umfang Ihrer Frage abdeckt, klären Sie dies bitte, und ich werde es Ihnen gerne erläutern. Dies ist eine notwendige Grundlage, die für eine gut geführte technologische Infrastruktur von entscheidender Bedeutung ist.
Server aufbauen
Ich mag keine Bilder in der UNIX-Welt. das ist eher ein Windows-Ansatz. Sogar einige Windows-Benutzer scheinen sich jetzt wieder auf Skripte für Standardbuilds zu konzentrieren.
Satellite scheint in der RHEL-Welt etwas populärer zu werden. Spacewalk ist das Open Source-Gegenstück. Sie müssen sich definitiv auf den RHEL-Ansatz einlassen, um diesen nutzen zu können. Dies dient sowohl zur Servererstellung als auch zur Konfigurationsverwaltung.
Idealerweise möchten Sie lokale Spiegel und Repositorys auf einem Dateiserver für die gesamte erforderliche Software einrichten.
Nutzen Sie zunächst Ihre Automatisierung der Distributionserstellung, z. B. Kickstart in RHEL / CentOS. Der Kickstart wäre eine Basis mit Variationen, die von Ihren Bedürfnissen abhängen. Die Kickstart-Builds können von einem PXE-Server initiiert werden.
Für den fortgeschritteneren Teil des Builds und für alles, was für eine Kickstart-Datei nicht geeignet ist, können Sie Ihre eigenen benutzerdefinierten Skripte schreiben. Möglicherweise funktioniert Puppet oder Cfengine jedoch auch für Sie anstelle von benutzerdefinierten Skripten. Ich habe festgestellt, dass benutzerdefinierte Skripte am flexibelsten sind und nicht auf einen einzelnen Ansatz beschränkt sind.
Wenn Sie eigene Skripte schreiben möchten, empfehle ich ein Kernskript für die universelle Konfiguration. Dies wäre Sicherheitskonfiguration, Härten und alles, was für alle Builds gilt. Dann ein abschließendes Skript, um die Serverrolle abzuschließen. Zum Beispiel ein Webserver oder ein Datenbankserver.
Standards einhalten
Was Sie beschreiben, fällt auch unter die Pflege von Konfigurationen. Build-Standards, Software-Updates und andere Dinge hängen mit Builds zusammen, sind jedoch in vielerlei Hinsicht voneinander getrennt.
Wenn Sie sich auf Systempakete verlassen, anstatt Ihre eigenen quellbasierten Builds für Ihre wichtigsten Serverrollen zu erstellen, kann ein Großteil davon mit systemeigenen Dienstprogrammen verwaltet werden. Dies kann ein einfaches Skript sein, mit dem Sie eine for
Schleife für Ihre Serverliste ausführen und eine yum -y update package
.
Bei der Konfigurationsverwaltung kommen hier Puppet-, Cfengine- und andere Konfigurationsverwaltungsprogramme zum Einsatz. Dies sind sehr nützliche Dienstprogramme, die die notwendige Grundlage bieten, ohne Ihre eigenen Skripte von Grund auf neu zu schreiben.
Wenn Sie Ihre Konfigurationsstandards für Ihre Server aktualisieren, ist es wichtig, diese in Ihre Standardserver-Builds zu übernehmen.