Verwaltete Umgebungen wachsen im Laufe der Zeit, oft als Ergebnis der zunehmenden Datenbeteiligung oder vielleicht aufgrund der Notwendigkeit, die Leistung durch geteilte Arbeitslast zu steigern. Aus diesem Grund müssen Mitglieder hinzugefügt werden. Mit MongoDB kann man sich beispielsweise für Replikation und Sharding entscheiden, was folglich erfordert, dass man dem Cluster weitere Mitglieder hinzufügt. Die Konfiguration und Bereitstellung dieser Umgebungen wird mit der Zeit hektisch, zeitaufwändig, anfällig für menschliche Fehler und so viele damit verbundene Rückschläge, die schließlich Betriebskosten verursachen. Nehmen Sie ein Beispiel eines Replikatsatzes mit 50 Mitgliedern in MongoDB und Sie möchten eine bestimmte Sammlung in jedem der Mitglieder teilen. Dies manuell für jedes der Mitglieder zu tun, ist zeitaufwändig. Wir benötigen daher ein zentralisiertes System, von dem aus Sie alle Mitglieder einfach konfigurieren können . Bei einem zentralisierten System schreiben Sie Code, der anschließend die verbundenen Mitglieder konfiguriert. Der Code ist daher für Menschen lesbar, versionierbar und testbar, um mögliche Fehler vor der Bereitstellung zu beseitigen.
Was ist Chef-Software?
Chef ist eine in Ruby geschriebene Automatisierungssoftware, die verwendet wird, um die Aufgabe der Konfiguration und Wartung von Cloud-Rechnern oder auf Prem-Servern zu optimieren. Dies geschieht, indem sichergestellt wird, dass alle verbundenen Mitglieder die erforderlichen Ressourcen erhalten, die Ressourcen gut konfiguriert sind und alle Ressourcen korrigiert werden, die sich nicht im gewünschten Zustand befinden. Chef stellt also grundsätzlich sicher, dass Dateien und Softwareressourcen, die auf einem bestimmten Computer erwartet werden, vorhanden, korrekt konfiguriert sind und wie beabsichtigt funktionieren.
Die Komponenten von Chef
Chef-Server
Dies ist das zentrale Steuersystem, das die Konfigurationsdaten enthält. Die Daten werden in ein „Rezept“ geschrieben, und wenn viele dieser Rezepte beteiligt sind, bilden sie ein Kochbuch. Das zentrale System enthält auch Metadaten, die jeden der Knoten beschreiben, wie in chef-client beschrieben.
Alle an Rezepten vorgenommenen Änderungen werden hier zur Validierung vor der Bereitstellung übergeben. Der Server stellt außerdem sicher, dass die Arbeitsstation und die verbundenen Knoten mithilfe von Autorisierungsschlüsseln gekoppelt sind, bevor die Kommunikation zwischen ihnen zugelassen und die Änderungen übernommen werden.
Chef-Client-Knoten
Der Chef-Client-Knoten registriert und validiert Knoten und erstellt die Knotenobjekte. Es enthält im Wesentlichen den aktuellen Status eines bestimmten Knotens und seiner Metadaten.
Knoten
Dies ist die physische, virtuelle oder Cloud-Maschine, die konfiguriert werden soll, und auf jeder sollte der Client-Knoten installiert sein.
Arbeitsstation
Die Workstation stellt eine Schnittstelle für die Kommunikation zwischen dem Server und den Client-Knoten bereit. Es bietet eine Plattform zum Schreiben, Testen und Bereitstellen der Kochbücher. Hier werden auch die Rollen definiert
Testküche
Hier wird der Code validiert.
Kochmesser
Interagiert mit den Knoten.
Kochbücher
Enthält Rezepte, die in der Ruby-Sprache geschrieben sind und verwendet werden, um die auszuführenden Aufgaben zu definieren. Die Rezepte spezifizieren Ressourcen und die Reihenfolge der Umsetzung der definierten Aufgaben.
- Attribute werden verwendet, um die Standardeinstellungen zu überschreiben.
- Dateien, die verwendet werden, um Dateien von einem bestimmten Pfad zum Chef-Client zu übertragen.
- Metadaten-Ressource definiert die Knoteninformationen wie im Client-Knoten beschrieben.
So funktioniert Chefkoch
Chef hat zwei Betriebsweisen, nämlich Client/Server oder in einem eigenständigen Modus, der als „Chef-Solo“ bekannt ist.
Der Chef-Server erhält verschiedene Attribute bezüglich eines bestimmten Knotens vom Chef-Client. Diese Attribute werden dann mithilfe von Elasticsearch vom Server indiziert, der dann eine Anwendungsprogrammschnittstelle (API) bereitstellt, von der aus die Client-Knoten diese Daten abfragen können. Die zurückgegebenen Ergebnisse werden dann von den Client-Knoten verwendet, um die relevanten Maschinen zu konfigurieren und sie in den gewünschten Zustand zu bringen.
Der Server zentralisiert alle Operationen, bei denen Änderungen gespeichert werden sollen
Von Chef verwaltete Server werden von Zeit zu Zeit anhand eines gewünschten Zustands bewertet, um dies sicherzustellen Alle Konfigurationsänderungen werden automatisch korrigiert und universell angewendet. Mit diesem Ansatz gibt es eine konsistente Konfiguration im großen Maßstab.
Erste Schritte mit Chef
Sie können die Chef-Workstation von dieser Seite herunterladen und installieren. Erstellen Sie einen Ordner namens cookbooks und führen Sie in diesem Ordner den folgenden Befehl aus:
$ chef generate cookbook first_cookbook
Dies erzeugt ein Verzeichnis namens first_cookbook mit einigen Unterordnern und Dateien.
Navigiere zu cookbooks/first_cookbook/recipes/ und aktualisiere das Rezept default.rb mit dem Inhalt
file "test.txt" do
content 'This is my first recipe file'
end
Diese Datei führen wir dann mit dem Befehl
aus$ chef-client --local-mode --override-runlist first_cookbook.
ODER innerhalb des Rezeptordners können Sie die Datei mit dem Befehl ausführen
$ chef-apply default.rb
Wenn Sie zu Ihrem Rezeptordner navigieren, sehen Sie auf jeden Fall die Datei test.txt mit dem Inhalt Dies ist meine erste Rezeptdatei. So einfach ist das. Im nächsten Abschnitt werden wir Rezepte erstellen, um einige spezifische Aufgaben in Bezug auf MongoDB zu erledigen
Installieren und Konfigurieren von MongoDB mit Chef
Sie können MongoDB installieren, indem Sie ein Installationsrezept MongoDBInstall.rb erstellen und es mit den Inhalten füllen
package "mongodb" do
action :install
version '4.0.3'
end
In diesem Fall lautet unser Paketname mongodb und wir werden Version 4.0.3 installieren
Was wir haben, ist ein Grundrezept, aber in vielen Fällen benötigen wir ein erweitertes Kochbuch, um unsere Konfiguration in MongoDB durchzuführen. Um die Aufgabe zu erleichtern, gibt es entwickelte Kochbücher wie SC-MongoDB, die die Konfiguration im Allgemeinen präzise machen.
SC-MongoDB-Kochbuch
Das Cookbook stellt mongodb_instance bereit, das eine zur Konfiguration von MongoDB-Parametern, Replikatsätzen und einem Sharded-Cluster erweitert.
Um das Kochbuch zu installieren, führen Sie einfach den Befehl
aus$ knife supermarket download sc-mongodb
Sie können dann die definierten Attribute auf dieser Site verwenden, um einige der standardmäßigen MongoDB-Attribute neu zu konfigurieren.