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.