Chef Tutorial - Verwandeln Sie die Infrastruktur in Code



Chef Tutorial ist das zweite Blog der Chef-Blogserie. Dieser Blog erklärt die Chef-Architektur und Chef-Komponenten wie Kochbücher, Rezepte usw. anhand von Beispielen.

Chef Tutorial

Chef Tutorial ist das zweite Blog der Chef-Blogserie. In meinem vorheriger Blog Ich habe erklärt, was Chef, Configuration Management ist und wie Chef Configuration Management mithilfe eines Anwendungsfalls von Gannett erreicht.

In diesem Koch-Tutorial werden folgende Themen behandelt:





Ich bin mir sicher, nachdem ich meine gelesen habe vorheriger Blog Sie müssen neugierig sein, wie genau Chef arbeitet. Der erste Abschnitt dieses Blogs zum Chef-Tutorial erklärt Ihnen die Chef-Architektur im Detail, wodurch alle Ihre Zweifel ausgeräumt werden.



Methodenüberladung und Methodenüberschreibung

Chef Tutorial - Chef Architektur

Wie in der folgenden Abbildung dargestellt, gibt es drei Hauptkomponenten von Chef:

  • Arbeitsplatz
  • Server
  • Knoten

Chef Architektur - Chef Tutorial - Edureka

Chef Tutorial - Workstation



Die Workstation ist der Ort, von dem aus sich alle Chef-Konfigurationen befindengelang es. Dieser Computer enthält alle Konfigurationsdaten, die später an den zentralen Chef Server übertragen werden können. Diese Konfigurationen werden auf der Workstation getestet, bevor sie auf den Chef Server übertragen werden. Eine Workstation besteht aus einem Befehlszeilentool namens Messer, Dies wird verwendet, um mit dem Chef Server zu interagieren. Es können mehrere Workstations vorhanden sein, die zusammen den zentralen Chef Server verwalten.

Workstations sind für die Ausführung der folgenden Funktionen verantwortlich:

  • Schreiben von Kochbüchern und Rezepten, die später auf den zentralen Chef Server übertragen werden
  • Verwalten von Knoten auf dem zentralen Chef Server

Lassen Sie uns nun die oben genannten Punkte einzeln verstehen.

Schreiben von Kochbüchern und Rezepten, die später auf den zentralen Chef Server übertragen werden

Rezepturen: Ein Rezept ist eine Sammlung von Ressourcen, die eine bestimmte Konfiguration oder Richtlinie beschreiben. Es beschreibt alles, was zum Konfigurieren eines Teils eines Systems erforderlich ist. Der Benutzer schreibt Rezepte, die beschreiben, wie Chef Anwendungen und Dienstprogramme (wie Apache HTTP Server, MySQL oder Hadoop) verwaltet und wie sie konfiguriert werden sollen.

Diese Rezepte beschreiben eine Reihe von Ressourcen, die sich in einem bestimmten Zustand befinden sollten, d. H. Pakete, die installiert werden sollten, Dienste, die ausgeführt werden sollten, oder Dateien, die geschrieben werden sollten.

Später im Blog Ich werde Ihnen zeigen, wie Sie ein Rezept schreiben, um das Apache2-Paket auf Chef Nodes zu installieren, indem Sie einen Ruby-Code in Chef Workstation schreiben.

Kochbücher: Mehrere Rezepte können zu einem Kochbuch zusammengefasst werden. Ein Kochbuch definiert ein Szenario und enthält alles, was zur Unterstützung dieses Szenarios erforderlich ist:

  • Rezepte, die die zu verwendenden Ressourcen und die Reihenfolge angeben, in der sie angewendet werden sollen
  • Attributwerte
  • Dateiverteilungen
  • Vorlagen
  • Erweiterungen für Chef, z. B. Bibliotheken, Definitionen und benutzerdefinierte Ressourcen

Verwalten von Knoten auf dem zentralen Chef Server

Das Workstation-System verfügt über die erforderlichen Befehlszeilenprogramme, um jeden Aspekt des zentralen Chef-Servers zu steuern und zu verwalten. Dinge wie das Hinzufügen eines neuen Knotens zum zentralen Chef-Server, das Löschen eines Knotens vom zentralen Chef-Server, das Ändern von Knotenkonfigurationen usw. können von der Workstation selbst aus verwaltet werden.

Lassen Sie uns nun sehen, welche Komponenten von Workstation erforderlich sind, um die oben genannten Funktionen auszuführen.

Workstations bestehen aus zwei Hauptkomponenten:

Messer-Dienstprogramm: Mit diesem Befehlszeilentool können Sie von Workstation aus mit dem zentralen Chef Server kommunizieren. Das Hinzufügen, Entfernen und Ändern von Knotenkonfigurationen in einem zentralen Chef-Server erfolgt mit diesem Knife-Dienstprogramm. Mit dem Dienstprogramm Knife können Kochbücher auf einen zentralen Chef-Server und Rollen hochgeladen und Umgebungen verwaltet werden. Grundsätzlich kann jeder Aspekt des zentralen Chef-Servers mit dem Dienstprogramm Knife von der Workstation aus gesteuert werden.

Ein lokales Chef-Repository: Hier wird jede Konfigurationskomponente des zentralen Chef Servers gespeichert. Dieses Chef-Repository kann mit dem zentralen Chef-Server synchronisiert werden (wiederum mit dem Messer-Dienstprogramm selbst).

Chef Tutorial - Chef Server

Der Chef Server fungiert als Hub für Konfigurationsdaten. Der Chef Server speichert Kochbücher, die Richtlinien, die auf Knoten angewendet werden, und Metadaten, die jeden registrierten Knoten beschreiben, der vom Chef-Client verwaltet wird.

Knoten verwenden den Chef-Client, um den Chef-Server nach Konfigurationsdetails wie Rezepten, Vorlagen und Dateiverteilungen zu fragen. Der Chef-Client erledigt dann so viel Konfigurationsarbeit wie möglich auf den Knoten selbst (und nicht auf dem Chef-Server). Auf jedem Knoten ist eine Chef Client-Software installiert, mit der die für diesen Knoten geltende Konfiguration vom zentralen Chef Server abgerufen wird. Dieser skalierbare Ansatz verteilt den Konfigurationsaufwand im gesamten Unternehmen.

Chef Tutorial - Chef Nodes

Knoten können ein Cloud-basierter virtueller Server oder ein physischer Server in Ihrem eigenen Rechenzentrum sein, der über den zentralen Chef Server verwaltet wird. Die Hauptkomponente, die auf dem Knoten vorhanden sein muss, ist ein Agent, der die Kommunikation mit dem zentralen Chef-Server herstellt. Dies nennt man Chef Client.

Chef Client führt die folgenden Funktionen aus:

  • Es ist für die Interaktion mit dem zentralen Chef Server verantwortlich.
  • Es verwaltet die Erstregistrierung des Knotens beim zentralen Chef Server.
  • Es zieht Kochbücher herunter und wendet sie auf den Knoten an, um sie zu konfigurieren.
  • Regelmäßige Abfrage des zentralen Chef-Servers, um ggf. neue Konfigurationselemente abzurufen.

Klicken Sie hier, um zu erfahren, wie Sie Chef Server, Workstation und Node installieren

Chef Tutorial - Vorteile des Chefs:

Dieses Chef-Tutorial ist unvollständig, wenn ich die wichtigsten Vorteile von Chef nicht einbeziehe:

  • Mit Chef können Sie eine gesamte Infrastruktur automatisieren. Alle Aufgaben, die manuell ausgeführt wurden, können jetzt über das Chef-Tool ausgeführt werden.
  • Mit Chef können Sie innerhalb von Minuten Tausende von Knoten konfigurieren.
  • Chef Automation funktioniert mit den meisten öffentlichen Cloud-Angeboten wie .
  • Chef wird nicht nur die Dinge automatisieren, sondern auch die Systeme unter ständiger Kontrolle halten und bestätigen, dass das System tatsächlich so konfiguriert ist, wie es erforderlich ist (Chef Agent / Client erledigt diese Aufgabe). Wenn jemand einen Fehler macht, indem er eine Datei ändert, korrigiert Chef sie.
  • Eine gesamte Infrastruktur kann in Form eines Chef-Repositorys aufgezeichnet werden, das als Blaupause verwendet werden kann, um die Infrastruktur von Grund auf neu zu erstellen.

Ich hoffe, Ihnen hat dieses Koch-Tutorial bis jetzt gefallen, genug mit den theoretischen Beiträgen! Lass uns ein bisschen Spaß beim Anfassen haben.

Chef Tutorial | Erste Schritte mit Chef | Edureka

Chef Tutorial - zum Anfassen

Hier erkläre ich Ihnen, wie Sie ein Rezept, ein Kochbuch und eine Vorlage in Chef Workstation erstellen. Ich werde Ihnen auch erklären, wie Sie ein Kochbuch von Workstation auf Chef-Client (Chef Node) bereitstellen.

Ich verwende zwei virtuelle Bilder, eines für Chef Workstation und eines für Chef Node. Für Chef Server verwende ich die gehostete Version von Chef (in der Cloud). Sie können auch eine physische Maschine für Chef Server verwenden.

Schritt 1: Installieren Sie Chef DK (Development Kit) auf Ihrer Chef Workstation.

Chef DK ist ein Paket, das alle Entwicklungstools enthält, die Sie zum Codieren von Chef benötigen. Hier ist der Link zum Download Küchenchef DK .

Wählen Sie hier das Betriebssystem aus, das Sie verwenden. Ich benutze CentOS 6.8. Also werde ich auf klicken Red Hat Enterprise Linux .

Kopieren Sie den Link entsprechend der von Ihnen verwendeten CentOS-Version. Ich verwende CentOS 6, wie Sie sehen können, habe ich im obigen Screenshot hervorgehoben.

Gehen Sie zu Ihrem Workstation-Terminal und laden Sie das Chef DK mit dem Befehl wget herunter und fügen Sie den Link ein.

Führen Sie Folgendes aus:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

Das Paket ist jetzt heruntergeladen. Es ist Zeit, dieses Paket mit U / min zu installieren.

Führen Sie Folgendes aus:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK ist jetzt auf meiner Workstation installiert.

Schritt 2: Erstellen Sie ein Rezept in der Workstation

Beginnen wir mit der Erstellung eines Rezepts in der Workstation und testen es lokal, um sicherzustellen, dass es funktioniert.Erstellen Sie einen Ordner mit dem Namen chef-repo. In diesem Ordner können wir unsere Rezepte erstellen.

Führen Sie Folgendes aus:

mkdir chef-repo cd chef-repo

In diesem Chef-Repo-Verzeichnis werde ich ein Rezept mit dem Namen edureka.rb erstellen. .rb ist die Erweiterung für Ruby. Ich werde den vim-Editor verwenden. Sie können jeden anderen Editor verwenden, den Sie möchten, wie gedit, emac, vi usw.

Führen Sie Folgendes aus:

vim edureka.rb

Fügen Sie hier Folgendes hinzu:

Datei '/ etc / motd' Inhalt 'Willkommen beim Chef' Ende

Dieses recipe ist Dureka .rb Erstellt eine Datei mit dem Namen / etc / motd mit dem Inhalt 'Welcome to Chef'.

Überladen und Überschreiben von Methoden in Java

Jetzt werde ich dieses Rezept verwenden, um zu überprüfen, ob es funktioniert.

Ausführen Dies:

Küchenchef edureka.rb

Es gibt also eine Datei im Chef-Repo, die Inhalt enthält Willkommen beim Küchenchef.

Schritt 3: M.Rezeptdatei zur Installation des httpd-Pakets odifizieren

Ich werde das Rezept so ändern, dass das httpd-Paket auf meiner Workstation installiert wird, und eine index.html-Datei in das Standarddokumentstammverzeichnis kopieren, um die Installation zu bestätigen. Die Standardaktion für eine Paketressource ist die Installation. Daher muss ich diese Aktion nicht separat angeben.

Ausführen Dies:

vim edureka.rb

Fügen Sie hier Folgendes hinzu:

Paket 'httpd' Service 'httpd' do action [: enable ,: start] end file '/var/www/html/index.html' do content 'Willkommen bei Apache in Chef' end

Jetzt werde ich diese Konfigurationen anwenden, indem ich den folgenden Befehl ausführe:

Ausführen Dies:

Küchenchef edureka.rb

Die Befehlsausführung beschreibt jede Instanz im Rezept klar. Es installiert das Apache-Paket, aktiviert und startet den httpd-Dienst auf der Workstation. Außerdem wird im Standarddokumentstamm eine index.html-Datei mit dem Inhalt „Willkommen bei Apache in Chef“ erstellt.

Bestätigen Sie nun die Installation von Apache2, indem Sie Ihren Webbrowser öffnen. Geben Sie Ihre öffentliche IP-Adresse oder den Namen Ihres Hosts ein. In meinem Fall ist es localhost.

Schritt 4: Jetzt erstellen wir unser erstes Kochbuch.

Erstellen Sie ein Verzeichnis mit dem Namen Kochbücher und führen Sie den folgenden Befehl aus, um das Kochbuch zu generieren.

Ausführen Dies:

mkdir kochbücher cd kochbücher koch generieren kochbuch httpd_deploy

httpd_deploy ist ein Name für das Kochbuch. Sie können einen beliebigen Namen angeben.

Wechseln wir in dieses neue Verzeichnis httpd_deploy.

Ausführen Dies:

cd httpd_deploy

Lassen Sie uns nun die Dateistruktur des erstellten Kochbuchs sehen.

Ausführen Dies:

Baum

Schritt 5: C.Erstellen Sie eine Vorlagendatei.

Früher habe ich eine Datei mit einigen Inhalten erstellt, die jedoch nicht zu meinen Rezepturen und Kochbuchstrukturen passt. Lassen Sie uns sehen, wie wir eine Vorlage für die Seite index.html erstellen können.

Ausführen Dies:

Chef generieren Vorlage httpd_deploy index.html

Wenn Sie nun meine Cookbook-Dateistruktur sehen, wird ein Ordner mit den Namensvorlagen mit der Datei index.html.erb erstellt. Ich werde diese index.html.erb-Vorlagendatei bearbeiten und mein Rezept hinzufügen. Siehe folgendes Beispiel:

Wechseln Sie in das Standardverzeichnis

Ausführen Dies:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Bearbeiten Sie hier die Vorlage index.html.erb mit einem beliebigen Editor, mit dem Sie vertraut sind. Ich werde Vim Editor verwenden.

Ausführen Dies:

vim index.html.erb

Fügen Sie nun Folgendes hinzu:

Willkommen bei Chef Apache Deployment

Schritt 6: C.Erstellen Sie ein Rezept mit dieser Vorlage.

Wechseln Sie in das Rezeptverzeichnis.

Führen Sie t aus seine:

cd / root / chef-repo / cookbooks / httpd_deploy / rezepte

Bearbeiten Sie nun die Datei default.rb mit einem beliebigen Editor. Ich werde Vim Editor verwenden.

Ausführen Dies:

vim default.rb

Fügen Sie hier Folgendes hinzu:

Paket 'httpd' Service 'httpd' do action [: enable ,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Jetzt gehe ich zurück zu meinem Chef-Repo-Ordner und starte / teste mein Rezept auf meiner Workstation.

Ausführen Dies:

cd / root / chef-repo chef-client --local-mode --runlist 'rezept [httpd_deploy]'

Laut meinem Rezept ist Apache auf meiner Workstation installiert, der Dienst wird beim Booten gestartet und aktiviert. Außerdem wurde eine Vorlagendatei in meinem Standarddokumentstamm erstellt.

Jetzt habe ich meine Workstation getestet. Es ist Zeit, den Chef Server einzurichten.

Schritt 7: Chef Server einrichten

Ich werde die gehostete Version von Chef Server in der Cloud verwenden, aber Sie können auch eine physische Maschine verwenden. Dieser Chef-Server ist anwesend bei manage.chef.io

Erstellen Sie hier ein Konto, falls Sie noch keines haben. Nachdem Sie ein Konto erstellt haben, melden Sie sich mit Ihren Anmeldeinformationen an.

So sieht Chef Server aus.

Wenn Sie sich zum ersten Mal anmelden, erstellen Sie als Erstes eine Organisation. Organisation ist im Grunde eine Gruppe von Maschinen, die Sie mit dem Chef Server verwalten.

Zuerst gehe ich zur Registerkarte Administration. Dort habe ich bereits eine Organisation namens edu gegründet. Daher muss ich das Starter-Kit von meiner Workstation herunterladen. Mit diesem Starter-Kit können Sie Dateien von der Workstation auf den Chef-Server übertragen. Klicken Sie auf das Einstellungssymbol auf der rechten Seite und dann auf Starter Kit.

Wenn Sie dort klicken, erhalten Sie die Option, das Starter Kit herunterzuladen. Klicken Sie einfach darauf, um die Starter Kit-Zip-Datei herunterzuladen.

Verschieben Sie diese Datei in Ihr Stammverzeichnis.Entpacken Sie nun diese Zip-Datei mit dem Befehl unzip in Ihrem Terminal. Sie werden feststellen, dass es ein Verzeichnis namens chef-repo enthält.

Ausführen Dies:

entpacke chef-starter.zip

Verschieben Sie nun dieses Starter-Kit in das Kochbuchverzeichnis im Chef-Repo-Verzeichnis.

Ausführen Dies:

mv Starter / Root / Chef-Repo / Kochbuch

Chefkochbücher sind im Kochbuch-Supermarkt erhältlich, wir können zum Chefkoch-Supermarkt gehen. Laden Sie die erforderlichen Kochbücher von herunter supermarkt.chef.io . Ich lade eines der Kochbücher herunter, um Apache von dort zu installieren.

Ausführen e t h ist:

CD Chef-Repo Messer Kochbuch Website herunterladen learn_chef_httpd

Für das Apache-Kochbuch wurde ein Teerball heruntergeladen. Jetzt müssen wir den Inhalt aus dieser heruntergeladenen Tar-Datei extrahieren. Dafür werde ich den Befehl tar verwenden.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Alle erforderlichen Dateien werden automatisch unter diesem Kochbuch erstellt. Es sind keine Änderungen erforderlich. Überprüfen wir die Rezeptbeschreibung in meinem Rezeptordner.

Führen Sie t aus h ist ::

cd / root / chef-repo / learn_chef_httpd / rezepte cat default.rb

Jetzt lade ich dieses Kochbuch einfach auf meinen Chef Server hoch, da es für mich perfekt aussieht.

Schritt 8: Laden Sie das Kochbuch auf den Chef Server hoch.

Um das heruntergeladene Apache-Kochbuch hochzuladen, verschieben Sie zuerst diese Datei learn_chef_httpd in den Ordner Kochbücher im Chef-Repo. Ändern Sie dann Ihr Verzeichnis in Kochbücher.

Führen Sie t aus h ist ::

Instanz einer Klasse Java
mv / root / chef-repo / learn_chef_httpd / root / chef-repo / kochbücher

Wechseln Sie nun in dieses Kochbuchverzeichnis.

Führen Sie Folgendes aus:

CD-Kochbücher

Führen Sie nun in diesem Verzeichnis den folgenden Befehl aus, um das Apache Cookboo hochzuladenzu:

Exec ute t h ist:

Messer Kochbuch hochladen learn_chef_httpd

Überprüfen Sie das Kochbuch über die Chef Server Management-Konsole. Im Richtlinienbereich finden Sie das Kochbuch, das Sie hochgeladen haben. Siehe den Screenshot unten:

Jetzt ist unser letzter Schritt das Hinzufügen von Chef Node. Ich habe eine Workstation und einen Chef-Server eingerichtet und muss jetzt meine Clients zur Automatisierung zum Chef-Server hinzufügen.

Schritt 9: Hinzufügen eines Chef-Knotens zum Chef-Server.

Zu Demonstrationszwecken werde ich eine CentOS-Maschine als Chef Node verwenden. Es können Hunderte von Knoten mit einem Chef-Server verbunden sein. Die Terminalfarbe meines Node-Computers unterscheidet sich von der Workstation, sodass Sie zwischen beiden unterscheiden können.

Ich brauche nur die IP-Adresse meines Knotens, damit ich den folgenden Befehl in meinem Knoten-Machin ausführen kannist.

Exec u t ist t h ist:

ifconfig

Ich werde meinen Chefknoten zum Server hinzufügen, indem ich den Knife Bootstrap-Befehl ausführe, in dem ich die IP-Adresse des Chefknotens und seinen Namen angeben werde. Führen Sie den unten gezeigten Befehl ausim:

Exec ute t h ist:

Messer Bootstrap 192.168.56.102 --ssh-Benutzer root --ssh-Passwort edureka --knotenname chefNode

Dieser Befehl initialisiert auch die Installation des Chef-Clients im Chef-Knoten. Sie können dies über die CLI auf der Workstation mithilfe des Messerbefehls überprüfen, wie unten gezeigtim:

Exec ute t h ist:

Messerknotenliste

Sie können dies auch vom Chef-Server aus überprüfen. Wechseln Sie in Ihrer Server Management Console zur Registerkarte Knoten. Hier werden Sie feststellen, dass der von Ihnen hinzugefügte Knoten vorhanden ist. Siehe den Screenshot unten.

Schritt 10: Knotenlaufliste verwalten

Lassen Sie uns sehen, wie wir dem Knoten ein Kochbuch hinzufügen und dessen Ausführungsliste vom Chef-Server aus verwalten können. Wie Sie im folgenden Screenshot sehen können, klicken Sie auf die Registerkarte Aktionen und wählen Sie die Option Ausführungsliste bearbeiten, um die Ausführungsliste zu verwalten.

In den verfügbaren Rezepten sehen Sie unser Rezept learn_chef_httpd. Sie können es aus den verfügbaren Paketen in die aktuelle Ausführungsliste ziehen und die Ausführungsliste speichern.

Melden Sie sich jetzt bei Ihrem Knoten an und führen Sie einfach chef-client aus, um Run Lis auszuführent.

Exec ute t h ist:

Hauptkunde

Ich hoffe, Ihnen hat dieses Chef-Tutorial gefallen und Sie haben gelernt, wie Chef Hunderte von Knoten konfigurieren kann. Chefkoch spielt in vielen Organisationen eine wichtige Rolle, um DevOps zu erreichen. Mit Chef veröffentlichen Organisationen häufiger Anwendungen und reliabGlas.

Wenn Sie diesen Blog auf „ Chef Tutorial ”Relevant, Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Chef, Jenkins, Nagios und GIT zu erwerben, um mehrere Schritte in SDLC zu automatisieren.