ClickCease Welches Konfigurationsmanagement-Tool sollte ich verwenden? Chef im Blickpunkt - TuxCare

Abonnieren Sie unseren beliebten Newsletter

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

Welches Konfigurationsmanagement-Tool sollte ich verwenden? Spotlight auf Chef

21. August 2019. TuxCare PR Team

Welches Konfigurationsmanagement-Tool sollte ich verwenden? Spotlight auf Chef, kernelcare und chef io Logo auf blauem Hintergrund

Der Aufstieg von DevOps hat die Entwicklung von Tools erforderlich gemacht, mit denen Ingenieure Hunderte oder sogar Tausende von Rechnern gleichzeitig verwalten können. Durch einen Prozess, der als Infrastructure as Code (IaC) bekannt ist - bei dem eine IT-Umgebung über eine Programmiersprache deklariert wird -, ermöglichen Configuration Management (CM)-Tools SysAdmins und DevOps-Teams einen Überblick über ihre Serverinfrastruktur und die Bereitstellung und Durchführung von Maßnahmen in großem Maßstab. CM-Tools erleichtern die Ausführung von Aufgaben auf mehreren Servern gleichzeitig und die Bereitstellung von Anwendungen mit nur einem Klick.

Wenn es um Massenbereitstellung und CM geht, gibt es vier große Softwareanbieter: Puppet, Ansible, Saltstack und Chef. KernelCare kann über alle vier bereitgestellt werden. Chef ist eine beliebte Option, mit einzigartigen Vor- und Nachteilen. Hier finden Sie alles, was Sie wissen müssen.

 

Das Gute: Die Wahl des Programmierers

Chef begann als internes End-to-End-Tool für die Serverbereitstellung bei OpsCode und wurde 2009 erstmals als Open-Source-Lösung veröffentlicht. Es zeichnet sich als das CM-Tool aus, das auf einem Client-Server-Architekturmodell basiert. Chef verwendet ein imperatives Programmierparadigma und nutzt den Pull-basierten Ansatz, um Konfigurationsinformationen an Zielknoten (die mit Agenten installiert sind) zu senden. Dies ähnelt dem Master-Agent-Modell von Puppet, mit dem Unterschied, dass die Chef-Workstation benötigt wird, um Konfigurationen vom Master zum Agenten zu steuern.

Das imperative Modell von Chef sieht vor, dass Befehle in sequenzieller Reihenfolge ausgeführt werden, so dass Ingenieure die einzelnen Schritte, die zur Verwaltung jeder Maschine erforderlich sind, genau bestimmen können. Der Name Chef kommt von der Art und Weise, wie die Prozesse strukturiert sind: Definitionsdateien werden als "Rezepte" bezeichnet und können mit Dateien, Attributen, Bibliotheken usw. zusammengeführt werden, um "Kochbücher" zu erstellen. Obwohl Rezepte eine domänenspezifische Sprache verwenden, die es nur bei Chef gibt, unterstützen sie Skripte, die in einfachem Ruby geschrieben sind.

Chef ist beliebt, und das aus gutem Grund. Es ist für Programmierer gemacht. Sein codebasierter Aufbau bietet ein hohes Maß an Kontrolle und Flexibilität, bis hin zur Erstellung von Modulen, wodurch Chef wahrscheinlich die anpassungsfähigste aller CM-Lösungen ist. Da seine Konfiguration in Git verwurzelt ist, verfügt es über starke Versionskontrollfunktionen. 

Chef ist nicht nur stark programmierbasiert und daher superflexibel, sondern auch sehr zuverlässig. Das Jahr 2009 ist in der Softwarewelt uralt, und diese Beständigkeit bedeutet, dass Chef sehr stabil und ausgereift ist. Die Chef-Community ist aktiv und bietet eine umfangreiche Dokumentation und Unterstützung. Es gibt eine umfangreiche Basis an Konfigurationsrezepten und Modulen (einschließlich mehr als 900 kostenloser Module). Auch die SaaS-Version von Chef ist sehr nützlich, wenn Sie Analysen und Berichte wünschen.

Das Schlechte: Steile Lernkurve

Chef wurde für Programmierer entwickelt. Das ist großartig - wenn Sie ein Programmierer sind. Aber wenn Sie es nicht sind, kann es sehr harte Arbeit sein. Wenn Sie noch dabei sind, die Grundlagen zu erlernen, oder wenn Sie kein Ruby-Benutzer sind, kann Chef entmutigend sein. Es ist viel Lernarbeit nötig, um sich mit Chef vertraut zu machen, selbst mit den einfachen Schritten der Konfiguration von Chef und der Durchführung der ersten Setups. Die Code-Basis ist groß, die Umgebungen sind komplex, und die Dokumentation ist unübersichtlich.

Außerdem bedeutet die Pull-basierte Einrichtung von Chef, dass die Konfigurationen erst beim nächsten geplanten Polling vom Server abgeholt werden. Das Fehlen von Push bedeutet, dass keine unmittelbare Reaktion auf Änderungen erfolgt. 

 

Insgesamt 

Mit Chef ist das ganz einfach. Wenn Sie über (Ruby-)Programmierkenntnisse verfügen, dann ist dies das CM-Tool für Sie. Es ist vollständig programmierbar, sodass der Umfang der Handhabung und Anpassung enorm ist. Darüber hinaus ist Chef superstabil und eignet sich hervorragend für groß angelegte Implementierungen in öffentlichen und privaten Umgebungen, die einen großen Speicher benötigen. Wenn Sie jedoch etwas Flinkeres, Beweglicheres und einfach zu handhabendes benötigen, ist Chef wahrscheinlich nicht die beste Wahl. 

 

Lesen Sie hier weitere Lösungsübersichten des KernelCare-Teams:

  1. Welches Konfigurationsmanagement-Tool sollte ich verwenden? Spotlight auf Ansible
  2. Welches Configuration Management (CM)-Tool soll verwendet werden? Fokus auf SaltStack
  3. Welches Konfigurationsmanagement-Tool sollte ich verwenden? Spotlight auf Puppet
  4. Welche Lösung für das Schwachstellenmanagement soll ich wählen? Fokus auf Qualys
  5. Welche Lösung für das Schwachstellenmanagement soll ich wählen? Fokus auf Rapid7

Möchten Sie das Patchen von Sicherheitslücken ohne Kernel-Neustart, Systemausfallzeiten oder geplante Wartungsfenster automatisieren?

Erfahren Sie mehr über Live-Patching mit TuxCare

Werden Sie ein TuxCare-Gastautor

Los geht's

E-Mail

Beitreten

4,500

Linux & Open Source
Fachleute!

Abonnieren Sie
unseren Newsletter