Chef - Übersicht
Chef ist eine Open-Source-Technologie, die von Opscode entwickelt wurde. Adam Jacob, Mitbegründer von Opscode, ist als Gründer von Chef bekannt. Diese Technologie verwendet die Ruby-Codierung, um grundlegende Bausteine wie Rezepte und Kochbücher zu entwickeln. Chef wird in der Infrastrukturautomatisierung eingesetzt und hilft bei der Reduzierung manueller und sich wiederholender Aufgaben für das Infrastrukturmanagement.
Chef hat eine eigene Konvention für verschiedene Bausteine, die für die Verwaltung und Automatisierung der Infrastruktur erforderlich sind.
Warum Chef?
Chef ist eine Konfigurationsmanagement-Technologie zur Automatisierung der Infrastrukturbereitstellung. Es wurde auf Basis der Ruby DSL-Sprache entwickelt. Es wird verwendet, um die Konfiguration und Verwaltung des Servers des Unternehmens zu optimieren. Es kann in jede Cloud-Technologie integriert werden.
In DevOps verwenden wir Chef, um Server und Anwendungen intern und in der Cloud bereitzustellen und zu verwalten.
Merkmale des Küchenchefs
Im Folgenden sind die wichtigsten Merkmale des Küchenchefs aufgeführt:
Chef verwendet die beliebte Ruby-Sprache, um eine domänenspezifische Sprache zu erstellen.
Chef macht keine Annahmen über den aktuellen Status eines Knotens. Es verwendet seine Mechanismen, um den aktuellen Status der Maschine abzurufen.
Chef ist ideal für die Bereitstellung und Verwaltung von Cloud-Server, Speicher und Software.
Vorteile des Küchenchefs
Chef bietet die folgenden Vorteile -
Lower barrier for entry - Da Chef für die Konfiguration die Ruby-Muttersprache verwendet, eine Standardkonfigurationssprache, kann sie von jedem mit etwas Entwicklungserfahrung leicht erlernt werden.
Excellent integration with cloud- Mit dem Messer-Dienstprogramm kann es problemlos in jede der Cloud-Technologien integriert werden. Es ist das beste Tool für ein Unternehmen, das seine Infrastruktur in einer Multi-Cloud-Umgebung verteilen möchte.
Nachteile des Küchenchefs
Einige der Hauptnachteile des Küchenchefs sind wie folgt:
Einer der großen Nachteile von Chef ist die Art und Weise, wie Kochbücher gesteuert werden. Es muss ständig gebabelt werden, damit die Leute, die arbeiten, nicht mit anderen Kochbüchern durcheinander kommen.
Es ist nur Chef Solo verfügbar.
In der aktuellen Situation passt es nur gut zur AWS Cloud.
Es ist nicht leicht zu lernen, wenn die Person nicht mit Ruby vertraut ist.
Die Dokumentation fehlt noch.
Schlüsselbausteine des Küchenchefs
Rezept
Es kann als eine Sammlung von Attributen definiert werden, die zum Verwalten der Infrastruktur verwendet werden. Diese im Rezept enthaltenen Attribute werden verwendet, um den vorhandenen Status zu ändern oder einen bestimmten Infrastrukturknoten festzulegen. Sie werden während der Ausführung des Chef-Clients geladen und mit dem vorhandenen Attribut des Knotens (Computers) verglichen. Es gelangt dann zu dem Status, der in der Knotenressource des Rezepts definiert ist. Es ist das Hauptarbeitspferd des Kochbuchs.
Kochbuch
Ein Kochbuch ist eine Sammlung von Rezepten. Sie sind die Grundbausteine, die auf den Chef-Server hochgeladen werden. Wenn ein Chef-Lauf stattfindet, wird sichergestellt, dass die darin enthaltenen Rezepte eine bestimmte Infrastruktur in den gewünschten Zustand versetzen, wie im Rezept aufgeführt.
Ressource
Es ist die Grundkomponente eines Rezepts, mit dem die Infrastruktur mit verschiedenen Zuständen verwaltet wird. Ein Rezept kann mehrere Ressourcen enthalten, die bei der Konfiguration und Verwaltung der Infrastruktur hilfreich sind. Zum Beispiel -
package - Verwaltet die Pakete auf einem Knoten
service - Verwaltet die Dienste auf einem Knoten
user - Verwaltet die Benutzer auf dem Knoten
group - Verwaltet Gruppen
template - Verwaltet die Dateien mit der eingebetteten Ruby-Vorlage
cookbook_file - Überträgt die Dateien aus dem Unterverzeichnis files im Kochbuch an einen Speicherort auf dem Knoten
file - Verwaltet den Inhalt einer Datei auf dem Knoten
directory - Verwaltet die Verzeichnisse auf dem Knoten
execute - Führt einen Befehl auf dem Knoten aus
cron - Bearbeitet eine vorhandene Cron-Datei auf dem Knoten
Attribut
Sie sind im Grunde Einstellungen. Sie können als Schlüsselwertpaar von allem angesehen werden, was man im Kochbuch verwenden möchte. Es gibt verschiedene Arten von Attributen, die angewendet werden können, wobei die endgültigen Einstellungen, unter denen der Knoten arbeitet, unterschiedliche Vorrang haben.
Datei
Es ist ein Unterverzeichnis innerhalb des Kochbuchs, das alle statischen Dateien enthält, die auf den Knoten abgelegt werden, die die Kochbücher verwenden. Ein Rezept kann dann als Ressource deklariert werden, die die Dateien aus diesem Verzeichnis auf den endgültigen Knoten verschiebt.
Vorlagen
Sie ähneln Dateien, sind jedoch nicht statisch. Vorlagendateien enden mit der Erweiterung .ebr, dh sie enthalten eingebettetes Ruby. Sie werden hauptsächlich verwendet, um einen Attributwert in die Dateien einzufügen, um die endgültige Dateiversion zu erstellen, die auf dem Knoten platziert wird.
Metadata.rb
Es wird verwendet, um die Metadaten zum Paket zu verwalten. Dies beinhaltet Details wie den Namen und Details des Pakets. Es enthält auch Dinge wie Abhängigkeitsinformationen, die angeben, welche Kochbücher dieses Kochbuch zum Betrieb benötigt. Auf diese Weise kann der Chef-Server die Ausführungsliste des Knotens korrekt erstellen und sicherstellen, dass alle Teile korrekt übertragen werden.
Standard-Kochbuchstruktur
C:\chef\cookbooks\nginx>tree
Folder PATH listing for volume Local Disk
Volume serial number is BE8B-6427
C: ├───attributes
├───definitions
├───files
│ └───default
├───libraries
├───providers
├───recipes
├───resources
└───templates
└───default
Chef - Verwandte Technologien
Im Folgenden finden Sie eine Liste der Technologien, die mit dem Küchenchef zusammenhängen.
Marionette
Puppet bietet eine Standardmethode für die Bereitstellung und den Betrieb von Software, unabhängig davon, wo sie ausgeführt wird. Es ist eine automatisierte Verwaltungs-Engine für Linux-, Unix- und Windows-Systeme, die Verwaltungsaufgaben basierend auf zentralisierten Spezifikationen ausführt.
Die primäre features of Puppet sind wie folgt -
- Implementierung neuer Systeme mit einheitlicher Konfiguration.
- Aktualisieren der Systeme und Aktualisieren der Sicherheits- und Softwarepakete.
- Integration neuer Funktionen und Hinzufügen geschickter Funktionen.
- Anpassen von Konfigurationen zur Sicherstellung der Verfügbarkeit von Datenquellen.
- Optimierung der verfügbaren Ressourcen und Minimierung der Kosten.
- Vereinfachung der Rollen und Ermöglichung, dass sich das Team auf zentrale und produktive Themen konzentriert.
- Die verfügbare Infrastruktur aus der Vogelperspektive betrachten.
Ansible
Ansible ist eine radikal einfache IT-Automatisierungsplattform, die die Bereitstellung Ihrer Anwendungen und Systeme erleichtert. Vermeiden Sie das Schreiben von Skripten oder benutzerdefiniertem Code zum Bereitstellen und Aktualisieren Ihrer Anwendungen - automatisieren Sie in einer Sprache, die sich mit SSH dem einfachen Englisch annähert, ohne dass Agenten auf Remote-Systemen installiert werden müssen.
Die primäre features of Ansible sind wie folgt -
- Einfach und leicht zu lernen
- Geschrieben in Python
- Agentless
- YAML-basierte Playbooks
- Ansible Galaxie
SaltStack
SaltStack wird für die datengesteuerte Konfiguration verwendet. Es ist ein neuer Ansatz des Infrastrukturmanagements, der auf einem dynamischen Kommunikationsbus basiert. Es wird für die datengesteuerte Orchestrierung, die Remote-Ausführung für jede Infrastruktur und das Konfigurationsmanagement für jeden App-Stack verwendet.
Stoff
Fabric ist eine Python-basierte Programmiersprache, die als Python-API entwickelt wurde und in Python-Code importiert werden muss, um eine Infrastruktur zu konfigurieren und zu verwalten.