Wann ist ein Konfigurationsmanager (zB Puppet / Chef / Ansible) sinnvoll?

17

An meinem derzeitigen Arbeitsplatz kümmere ich mich um zwei VMware-Host-Maschinen, eine physische OpenBSD-Maschine, drei Debian-VMs und sechs Windows Server-VMs (2008/2012).

Ich überlege, ein Konfigurationsmanagement-Tool wie Puppet oder Chef zu implementieren. Ist dies vernünftig oder überwiegt der Aufwand für das Erlernen des Tools den Nutzen? Wo liegt der Wendepunkt zwischen Verwaltbarkeit und Implementierungskosten?

Rhyven
quelle
1
Es ist "angemessen", sobald Sie jemals eine Konfiguration verwalten müssen - müssen Sie sich von einer Katastrophe erholen? Müssen Sie in ein neues Rechenzentrum umziehen? Müssen Sie horizontal expandieren? Wenn du von Hand machst, machst du es falsch . " Tun Sie es zweimal? Schreiben Sie es auf. "
warren
1
Dies hängt davon ab, was Sie mit diesen Systemen tun müssen.
Ewwhite

Antworten:

25

IMHO lohnt es sich zu lernen, auch wenn Sie nur einen einzigen Server verwalten,

Ja, es wird eine Lernkurve geben. Ja, Sie werden frustriert sein. Für diese Kosten werden Sie jedoch durch zuverlässige, konsistente Ein-Klick-Bereitstellungen, versionskontrollierte Serverkonfiguration, einfache Einrichtung von Test- / Entwicklungsumgebungen usw. um ein Vielfaches zurückgezahlt.

Neben den Vorteilen für Ihren aktuellen Job ist die Möglichkeit, Ihrem Lebenslauf ein CM-System hinzuzufügen, ein großer Gewinn. Moderne sysadmins sind jetzt zumindest zu erwarten Exposition zu einem Config - Management - System, wenn nicht Kenntnisse.

(Nebenbemerkung: Betrachten Sie auch Ansible. Es ist mein bevorzugtes CM und sehr einfach in Betrieb zu nehmen - viel einfacher als Puppet oder Chefkoch. Außerdem kommt die Windows-Unterstützung in Ansible gut voran.)

EEAA
quelle
5
Gut gesagt. Am Ende benutze ich Ansible für triviale Dinge wie das Einrichten eines Himbeer-PIS zu Hause, da dies für mich eine bequeme Möglichkeit ist, den Prozess zu dokumentieren.
Tedder42
2
Absolut! Der Einstieg in den Chefkoch war für mich ein großer Karrieregewinn. Hier ist die Realität: In ein paar Jahren wird CM für alle Jobs, außer für junge SysAd-Jobs, erforderlich / zu erwarten sein.
gWaldo
2
Total einverstanden. Zu viel Fokus liegt auf der Automatisierung der Installation, die nur ein Teil der CM-Systeme ist. Die Leute vergessen, wofür M steht - Management. Wie verfolgen Sie die verschiedenen Konfigurationsänderungen, die Sie an 1 Server vornehmen? Die Anzahl der Server spielt keine Rolle. Wenn dieser 1 Server ausfällt, können Sie ihn ohne Zweifel problemlos neu erstellen.
ETL
5

Ich überlege, ein Konfigurationsmanagement-Tool wie Puppet oder Chef zu implementieren. Ist dies vernünftig oder überwiegt der Aufwand für das Erlernen des Tools die Vorteile?

Das hängt davon ab, wie viel Zeit und Geld Sie verbrennen müssen und ob Sie Ihr Geld verbrennen oder nicht.

Ein Konfigurationsmanagement-Tool (eines davon) wird zu einer wertvollen Fähigkeit auf dem heutigen Markt.

Die Zeit für das Erlernen und Implementieren eines CM-Tools zu verwenden, ist aus Sicht Ihres Unternehmens oder Ihrer Umgebung möglicherweise nicht die effizienteste Aufgabe, aber es lohnt sich möglicherweise aufgrund Ihrer Kenntnisse.

Wo liegt der Wendepunkt zwischen Verwaltbarkeit und Implementierungskosten?

Die meisten Konfigurationsmanagement-Tools sind kostenlos verfügbar, da sie schwieriger zu installieren und in Betrieb zu nehmen sind.

Diese Frage ist etwas schwierig zu beantworten, da es wirklich davon abhängt, was Sie täglich tun, um diese Server zu verwalten. Wenn Sie gar nicht viel tun müssen, ist ein Konfigurationsmanagement-Tool möglicherweise ein totaler Overkill.

Wenn Sie Ihre Infrastruktur nur wirklich in einen vorhersehbaren und grundlegenden Zustand versetzen müssen, kann es wenig schaden, die Grundlagen von etwas wie SaltStack oder Ansible zu erlernen.

Meiner persönlichen Erfahrung nach ist Salt sehr einfach in Betrieb zu nehmen und auf Server zu booten und kann für sehr einfache Remote-Ausführung und Berichterstellung verwendet werden, was nützlich sein kann, wenn Sie es noch nicht in Ihrer Umgebung implementiert haben.

Denken Sie daran, ich bin voreingenommen. Sie sollten jedes CM-Tool selbst bewerten.

Vasili Syrakis
quelle
4

Genau wie @EEAA sagte - Anzahl der Server ist irrelevant. Sie können die Vorteile der Konfigurationsverwaltung auf einem einzelnen Computer nutzen:

  • Dokumentiertes Setup (dokumentiert über CM-Skripte)
  • zuverlässige Bereitstellung (Sie können Ihr Setup immer wieder [neu] bereitstellen
  • Ausfallsicherheit des Setups (aktueller Server krächzt - Startet einen neuen)
  • Wiederverwendung (wenn Sie einen zweiten Server haben - Sie haben bereits CM-Skripte, die Sie von dem ersten wiederverwenden können)
  • Upgrades (es ist wie ein neues Setup, nur auf einer anderen Plattform)

Ich kann sagen, dass ich CM für alle meine persönlichen Server implementieren musste, da ich dort selten arbeite und all die kleinen Details vergesse. CM-Skripte zu haben, während es zeitaufwändig zu sein scheint (es ist), lohnt sich die Rückzahlung. Langfristig sparen Sie viel mehr Zeit für die Einrichtung.

Droopy4096
quelle
3

Ich habe Erfahrung mit Puppet und Ansible. Ansible ist IMO einfacher, da es prozedural ist, während Puppet deklarativ ist. Beides hat Vor- und Nachteile, aber ich habe aufgrund von Puppets kryptischen Fehlern genug Haare gezogen.

Beide erfordern viel Arbeit, wenn Sie eine saubere und wiederverwendbare Konfiguration erstellen möchten. Die Kosten zahlen sich aus, wenn Sie mindestens zwei sehr ähnliche Server haben, z. B. Clouds oder Cluster.

Es kann jedoch auch für eigenständige Server verwendet werden - Sie können Administratorbenutzer, Standardkonfigurationen (mit lokalen Variationen) für sshd, postfix oder snmpd einrichten und sie auch zum einfachen Sammeln von Informationen verwenden, z.

Wie von der EEAA erwähnt, enthält es auch einen Wert zum Dokumentieren des Setups, wenn Sie sicherstellen, dass ein Server wirklich vom Basisstatus in den Ausführungsstatus versetzt wird. Es ist gut, es mit dem Versionskontrollsystem (git) zu kombinieren, damit die von Ihnen vorgenommenen Änderungen versioniert und dokumentiert werden. Das ist sehr wertvoll, wenn Sie ein Team von Administratoren haben.

Edheldil
quelle
1

Puppet oder jedes andere Managementsystem bringt große Vorteile, die alle durch andere Antworten hervorgehoben wurden, aber es gibt kein Patentrezept, wenn es um das Management geht.

Zum Beispiel kostet das Erstellen von Puppenklassen für komplexe Systeme viel Zeit und Mühe und manchmal Tränen, da es viele Fallstricke gibt und Fehlermeldungen nicht immer zu 100% klar sind. Wenn die Software aktualisiert wird, müssen Sie Zeit investieren, um Ihre Puppenklassen an neue Spezifikationen anzupassen oder Prozedur und herauszufinden, welcher Ansatz am besten dafür geeignet ist (Puppe zum Beispiel deklarativ und ein Upgrade ist typischerweise prozedural)

Außerdem müssen Sie herausfinden, wie Sie die an Ihren Klassen vorgenommenen Änderungen kontrolliert implementieren und wie Sie die verschiedenen Versionen Ihrer Manifeste verwalten.

Sie sollten sich auch überlegen, wie Sie Ihre Management-Lösung aktualisieren können, wenn die Zeit dafür gekommen ist.

Wenn Sie viel Zeit damit verbringen, zum Beispiel Marionettenklassen zu schreiben, müssen Sie viele Ein-Klick-Installationen durchführen, um die tatsächlichen Vorteile zu nutzen.

Ich empfehle, immer noch nachzuschlagen, dh die Verteilung von Konfigurationsdateien kann ein guter Ausgangspunkt sein und von dort aus erfolgen.

Petter H
quelle