Ich würde empfehlen, eine Mischung aus Debian-Pre-Seeding zu verwenden, bei der Sie dem Installationsprogramm eine Textdatei geben, die alle Fragen beantwortet, die es stellen würde, und Puppet.
Der Grund für die Verwendung der Voreinstellung anstelle von FAI besteht darin, dass Sie nicht erst ein Image erstellen und es auf dem neuesten Stand halten müssen. Am Ende erhalten Sie eine Installation, die derjenigen sehr ähnlich ist, die Sie hätten, wenn Sie alle von Hand ausgeführt hätten. Wenn Sie eine neue Version installieren, müssen Sie eine Konfigurationsdatei mit den Änderungen aktualisieren, anstatt ein neues Image erstellen zu müssen.
Ein Konfigurationsmanagement-Tool ist besonders nützlich, wenn mehrere Server dieselbe Rolle ausführen und identisch sein sollen, z. B. ein Webserver-Cluster. Sie können jedoch auch nützlich sein, um die Basisinstallation aller Server zu konfigurieren. Sie möchten bestimmte Pakete auf all Ihren Servern installieren, z. B. ntpd und einen MTA. Sie werden eine Konfigurationsdatei auf allen Ihren Servern ändern wollen. Ein zusätzlicher Vorteil ist, dass Sie Ihre Manifeste in einer Art Subversion aufbewahren und aufzeichnen können, was sich auf einem Server geändert hat und wer es getan hat und warum. Die Konfigurationsverwaltung kann auch bei einem Serverausfall lebensrettend sein und muss schnell neu erstellt werden. Installieren Sie das Betriebssystem (mit FAI oder Voreinstellung), installieren Sie Puppet und los geht's, genau wie zuvor. Natürlich müssen Sie Datensicherungen aufbewahren.
Das Konfigurationsmanagement erfordert Engagement, um sicherzustellen, dass Sie nur Änderungen daran vornehmen und die Einrichtungskosten im Voraus anfallen. Sobald Sie jedoch ein funktionierendes Setup haben, werden Sie es nicht bereuen.
Puppet ist das modernere der beiden Werkzeuge, die Sie erwähnt haben. Ich kann es wirklich jedem empfehlen. Die Konfiguration ist eine deklarative Sprache und es ist einfach, Konstrukte höherer Ebenen aufzubauen. Es gibt auch eine sehr große Community und es gibt immer Leute, die gerne auf der Mailingliste oder im IRC-Kanal helfen.
Ich würde CFengine für jede Umgebung empfehlen, die mehr als 2-3 Boxen umfasst und in der Sie ein Konzept von "Vorlagen" oder Servern haben, die bestimmte Rollen ausführen.
Warum? Einfach ausgedrückt, es reduziert Fehler, Sie haben ein Tool, das sicherstellt, dass die Datei- / Verzeichnisberechtigungen überall in der Umgebung korrekt sind, und wenn Sie weitere Server einführen, verarbeitet das Tool absolut alles und macht keine Fehler.
Im Gegensatz zu einem erfahrenen Systemadministrator, der am Ende einer zwölfstündigen Schicht einen Webserver einführte, als die Dinge bereits schief liefen / foo / bar andernfalls wird die Anwendung stillschweigend etwas ziemlich Wichtiges tun, wie Rechnungskunden? :)
Tools wie CFengine sind auch eine großartige Möglichkeit, um umweltweite Sicherheitsupdates durchzuführen. Das Ablegen einer Nagios-Konfiguration (NRPE) auf alle Boxen ist ebenfalls ein Kinderspiel. Egal , ob Sie mit fünf Boxen oder fünf zu tun hat hundert Kisten Sie werden Zeit mit CFEngine speichern.
Es ist wahrscheinlich erwähnenswert, dass meine Umgebung etwas größer ist. Ich habe CFengine jedoch auch für kleinere Umgebungen eingesetzt, als Sie vermuten, daher die Empfehlung!
Wahrscheinlich wird Ihre nächste Frage CFengine vs Puppet sein? Das ist eine schwierigere Entscheidung, und ich bin immer auf CFengine umgestiegen, weil Puppet (in den Anfängen) noch nicht so ausgereift war, vor allem was die Fehlerprotokollierung anbelangt. Im Rückblick auf meine spezifischen Fragen mit Puppet, sie SSL - Zertifikat waren verwandt, schmerzlich noch an die Zeit erinnern , die ich 3 Stunden verbrachte Server Diagnose <-> Client - Verbindungsprobleme in irc.freenode.net/#puppet mit einigen kräftigen RTFM und RTFS nur zu finden Ein Fehler, der nicht protokolliert wurde, und Luke sagte: "Ah, das ist wirklich schwer zu beheben" und tat es nie. :(
quelle
Neben Cfengine und Puppet gibt es auch Chefkoch . Ich würde dringend empfehlen, eines dieser Tools zu verwenden, da die Dinge immer in unerwartete Richtungen wachsen werden. Auf diese Weise können Dinge an einem zentralen Ort verwaltet werden.
Es ist wichtig zu erkennen, dass Sie wahrscheinlich nicht alles bekommen, aber wenn Sie mindestens 90% bekommen, ist es ein Anfang. Außerdem macht es Spaß und wird Ihr Leben auf lange Sicht einfacher machen. Schließlich ist es eine gute Fähigkeit, vorwärts zu kommen.
quelle
Ich benutze Cfengine seit 5 Jahren, um Debian zu installieren (von Woody bis heute Lenny). Mit Etch baue ich einen benutzerdefinierten Debian-Installer. Dank Voreinstellung kommt eine einzige Frage auf: "Was ist der Hostname?". Danach konfiguriert cfengine den gesamten Server (dns + dhcp mit dnssec, samba, ntpd, Standardbenutzern (Samba) und Passwörtern, ssh, openvpn, apache vHosts, Backup mit rsnapshot auf LVM, benutzerdefinierten Webminmodulen usw.).
Selbst wenn ich nur einen Server installiere, verwende ich cfengine-Skripte aus meiner Toolbox wie folgt:
Ich mag cfengine, weil die cf2-Skripte einigermaßen lesbar sind.
Es lohnt sich also auf jeden Fall, mit Tools für das automatische Konfigurationsmanagement zu arbeiten.
/ thorsten
quelle
Es muss sich auch für eine kleine Site lohnen. Beim Wachsen dreht sich alles um Beständigkeit. Und Sie wissen, dass Ihre Website wachsen wird. Am besten fängst du noch klein an. Cfengine ist großartig. Vor allem die Version 3, die alle Paketmanager auf dem gesamten Gebiet unterstützt, sehr leicht und sicher ist und "einfach funktioniert". Puppet lieferte einfach nicht das, was es behauptete. Ich habe es nicht mit Chef versucht.
Der Vorteil von Cfengine gegenüber den anderen ist, dass es ultraleicht ist, aber tatsächlich über mehr Funktionen verfügt. Die Sicherheit ist wie bei ssh und nicht wie bei den von puppet verwendeten Web-Zertifikaten. Als ich meinem Chef von Cfengine erzählte, dachte er, es handele sich um Science-Fiction. Cooles Zeug.
quelle
Das Tool Nummer eins, das ich mir wünschte, wenn ich eine kleine Site laufen lasse, ist das Erstellen auf Knopfdruck. Es erleichtert das Patchen, Aktualisieren und Neuerstellen, wodurch in Zukunft eine Vielzahl anderer Probleme behoben werden können.
Kein ssh auf allen Boxen richtig installiert? auch kein curl / wget / vim? Was ist mit anderen Inhouse-Tools, die Sie auf jeder Box haben möchten?
Die zentrale Verwaltung Ihrer Server ist eines der ersten Tools, mit denen Sie künftige Bemühungen erheblich vereinfachen können.
quelle
Ich stimme jedem hier zu. Sie sollten lernen, eine funktionierende Infrastruktur einzurichten, wenn Sie nicht zu groß sind. Denn dann sind Sie vorbereitet, wenn Sie wachsen.
Abhängig davon, was Sie ausführen möchten, würde ich mich für FAI, Cfengine und Pre-Seeding für Debian / Ubuntu entscheiden. FAI kann mit vielen verschiedenen Werkzeugen arbeiten, daher ist es ein guter Anfang für jede Debian-ähnliche Distribution. Mit der klassengesteuerten Konfiguration von FAI (und cfengine) können Sie Ihre Installationen auf einfache Weise in kleine Module aufteilen, die Sie dann für jede Ihrer Maschinen auswählen können. Auf diese Weise wird es nützlich sein, auch wenn Sie viele verschiedene Maschinen haben. Es ist tatsächlich nützlicher, da Sie Ihre Installation mit diesen Skripten dokumentieren. Und wenn Sie auf einem neuen Computer installieren, werden Sie nichts vergessen.
Ja, Sie SOLLTEN einige Computer testen, bevor Sie Ihre Änderungen in einer Live-Installation bereitstellen. Mit einem solchen Konfigurationsskript werden Sie jedoch nicht vergessen, einen Schritt in der Live-Installation auszuführen.
quelle