So installieren Sie Chef Server, Workstation und Chef Client auf Ubuntu 18.04

So installieren Sie Chef Server, Workstation und Chef Client auf Ubuntu 18.04

Chefkoch ist ein Ruby -basierter Konfigurationsmanagement -Tool, mit dem die Infrastruktur als Code definiert wird. Auf diese Weise können Benutzer die Verwaltung vieler Knoten automatisieren und die Konsistenz über diese Knoten aufrechterhalten. Die Rezepte erklären den gewünschten Status für verwaltete Knoten und werden auf der Workstation eines Benutzers mit dem Chef Workstation -Paket erstellt. Ihre Rezepte werden über einen Kochserver über Knoten verteilt. Ein Kochkunde, der auf jedem Knoten installiert ist, ist für die Anwendung des Rezepts auf seinen entsprechenden Knoten verantwortlich. Diese Anleitung zeigt Ihnen, wie Sie einen Chef -Server und Chef -Workstation installieren und konfigurieren. Wir werden auch einen Knoten starten.

In diesem Tutorial lernen Sie:

  • Installieren und konfigurieren Sie den Chef -Server
  • Erstellen Sie Chef -Benutzer und Organisation
  • Installieren und konfigurieren Sie die Chef -Workstation
  • Konfigurieren Sie Messer und Bootstrapping eines Client -Knotens

Kocharchitektur.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu Linux 18.04
Software Chef Server Core, Chef Workstation, Chefkunde, Chef -Entwicklungskit
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Installieren und konfigurieren Sie den Chef -Server

Der Chef -Server ist der Hub der Interaktion zwischen allen Workstations und Knoten unter Chef Management. Änderungen an Konfigurationscode auf Workstations werden auf den Chef-Server weitergeleitet und dann von einem Knoten-Chef-Client gezogen, um die Konfigurationen anzuwenden.

Laden Sie den neuesten Chef -Server durch Ausführen des folgenden Befehls herunter:

# WGet https: // Pakete.Koch.IO/Dateien/Stable/Chef-Server/12.18.14/Ubuntu/18.04/Chef-Server-Core_12.18.14-1_AMD64.Deb 


Installieren Sie nun das Serverpaket mit dem folgenden Befehl:

# dpkg -i Chef-server-core_*.Deb 

Der Chef-Server enthält ein Befehlszeilen-Dienstprogramm namens Chef-Server-CTL. Führen Sie den Chef-Server-CTL aus, um die Chef-Serverdienste zu starten.

# Chef-Server-CTL Reconfigure 

Bei erfolgreicher Konfiguration des Chef -Server.

Chef Client fertiggestellt, 493/1100 Ressourcen in 12 Minuten aktualisiert 02 Sekunden Chef Server Reconfigured! 
root@ubuntubox1: ~# Chef-Server-CTL-Status Lauf: Buchhandel: (PID 1435) 6644S; Run: log: (PID 1440) 6644S Run: Nginx: (PID 1235) 6653S; Run: log: (PID 1744) 6631S Run: OC_BIFROST: (PID 1196) 6657S; Run: log: (PID 1203) 6657S Run: OC_ID: (PID 1220) 6655s; Run: log: (PID 1227) 6655S Run: opScode-erchef: (PID 4376) 6432s; Run: log: (PID 1508) 6644S Run: opScode-Expander: (PID 1335) 6648S; Run: log: (PID 1431) 6646S Run: opScode-Solr4: (PID 1244) 6650S; Run: log: (PID 1285) 6649S Run: postgresql: (PID 1176) 6659s; Lauf: log: (PID 1180) 6659S Run: Rabbitmq: (PID 4188) 6443S; Run: log: (PID 1748) 6631S Run: Redis_LB: (PID 27397) 6931s; Run: log: (PID 1735) 6632S root@ubuntubox1: ~# 

Erstellen Sie Chef -Benutzer und Organisation

Um Workstations und Knoten mit dem Kochserver zu verknüpfen, erstellen Sie einen Administrator und eine Organisation mit zugehörigen RSA -privaten Schlüssel.
Erstellen Sie eine aus dem Heimverzeichnis aus .Chef -Verzeichnis, um die Schlüssel zu speichern.

# Mkdir .Koch 

Verwenden Sie Chef-Server-CTL, um einen Benutzer zu erstellen. Ändern Sie in diesem Beispiel Folgendes, um Ihren Anforderungen zu entsprechen: User_Name, First_Name, Last_Name, E -Mail und Passwort. User_name anpassen.Pem und verlassen die .PEM -Erweiterung.

Chef-Server-CTL-Benutzer-Erstellung user_name first_name last_name E-Mail 'Passwort'--Filename ~/.Chef/user_name.Pem
root@ubuntubox1: ~# Chef-Server-CTL User-Create Chefadmin Chef Administrator Chefadmin @@ Ubuntubox1.com '*******' -filename ~/.Koch/Chefadmin.Pem 

Um die Liste aller Benutzer auf Ihrem Chef -Server anzuzeigen, geben Sie den folgenden Befehl aus:

root@ubuntubox1: ~# Chef-server-CTL User-Liste Chefadmin Pivotal 

Erstellen Sie eine Organisation und fügen Sie den im vorherigen Schritt erstellten Benutzer hinzu. Ersetzen Sie org_name durch eine kurze Kennung für die Organisation, org_full_name durch den vollständigen Namen der Organisationen, user_name mit dem im obigen Schritt erstellten Benutzernamen und org_name.PEM mit kurzer Kennung der Organisation gefolgt von .Pem.

Chef-server-CTL org-create org_name "org_full_name"-Association_User User_name-filename ~/.Koch/org_name.Pem
root@ubuntubox1: ~# Chef-server-CTL Org-Create Chef-on-Ubuntu "Chefinfrastruktur auf Ubuntu 18.04 " -Association_User Chefadmin -FileName ~/.Chefkoch/Chef-On-Ubuntu.Pem 


Verwenden Sie den folgenden Befehl, um die Liste aller Organisationen auf Ihrem Chef -Server anzuzeigen:

root@ubuntubox1: ~# Chef-server-CTL org-List Chef-on-Ubuntu 

Wenn der Chef -Server installiert und die RSA -Tasten generiert werden, werden wir mit der Konfiguration der Chef Workstation beginnen. In der Workstation werden alle wichtigen Konfigurationen für Ihre Knoten erstellt.

Installieren und konfigurieren Sie die Chef -Workstation

In der Chef Workstation erstellen und konfigurieren Sie Rezepte, Kochbücher, Attribute und andere Änderungen, die zum Verwalten Ihrer Knoten erforderlich sind. Obwohl dies ein lokaler Computer sein kann, der ein beliebiges Betriebssystem ausführt.

In diesem Abschnitt werden Sie das Chef -Workstation -Paket herunterladen und installieren, das alle Tools zur Verfügung stellt.

Laden Sie die neueste Chef -Workstation herunter:

root@ubuntubox2: ~# wget https: // pakete.Koch.IO/Dateien/Stable/Chef-Workstation/0.2.43/Ubuntu/18.04/Chef-Workstation_0.2.43-1_amd64.Deb-2019-06-03 13: 35: 51-- https: // Pakete.Koch.IO/Dateien/Stable/Chef-Workstation/0.2.43/Ubuntu/18.04/Chef-Workstation_0.2.43-1_amd64.Deb Lösung von Paketen.Koch.IO (Pakete.Koch.io)… 151.101.142.110 Verbindung zu Paketen herstellen.Koch.IO (Pakete.Koch.io) | 151.101.142.110 |: 443… verbunden. HTTP-Anfrage gesendet, auf Antwort erwartet… 200 OK Länge: 129713682 (124 m) [Anwendung/X-Debian-Package] Sparen Sie: 'Chef-Workstation_0.2.43-1_amd64.Deb 'Chef-Workstation_0.2.43-1_amd64.deb 100%[============================================== ======================================>] 123.70m 1.51 MB/s in der 80er Jahre 2019-06-03 13:37:17 (1.55 MB/s) - 'Chef -Workstation_0.2.43-1_amd64.Deb 'gespeichert [129713682/129713682] 

Installieren Sie Chef Workstation:

root@ubuntubox2: ~# dpkg -i Chef -Workstation_*.Deb auswählen, die zuvor nicht ausgewählte Paket Chef-Workstation auswählen. (Lesen der Datenbank… 117468 Dateien und Verzeichnisse derzeit installiert.) Vorbereitung auf das Auspacken von Chef-Workstation_0.2.43-1_amd64.Deb… Chef-Workstation auspacken (0.2.43-1)… Einrichten von Chef-Workstation (0.2.43-1)… Verwenden Sie den Paketmanager Ihrer Plattform, um die experimentellen Chef-Workstation-App auszuführen, diese Abhängigkeiten: libgConf-2.So.4 => Nicht gefunden, Sie können die App dann starten, indem Sie "Chef-Workstation-App" ausführen. Die App wird dann im Systemfach verfügbar sein. Vielen Dank für die Installation von Chef Workstation! Sie finden einige Tipps zum Einstieg bei https: // Chef.Sch/ 

Jetzt müssen wir das Chef -Repository erstellen. Das Chef-Repo-Verzeichnis speichert Ihre Kochbücher und andere verwandte Dateien.

# Chef generieren Repo-Chef-Repo 

Ein ... kreieren .Chefkoch -Unterverzeichnis. Der .Chef -Unterabzeichnung speichert die Messerkonfigurationsdatei und die .PEM -Dateien, die für die Authentifizierung von RSA -Schlüsselpaaren mit dem Chef -Server verwendet werden. Bewegen Sie sich in das Koch-Repo-Verzeichnis:

root@Ubuntubox2: ~# mkdir ~/Chef-Repo/.Chef Root@Ubuntubox2: ~# CD Chef-Repo Root@Ubuntubox2: ~/Chef-Repo# 


Die Authentifizierung zwischen Chef -Server und Workstation und/oder Knoten wird mit der Verschlüsselung der öffentlichen Schlüssel abgeschlossen. Dies stellt sicher, dass der Chef -Server nur mit vertrauenswürdigen Maschinen kommuniziert. In diesem Abschnitt werden die bei der Einrichtung des Chef -Server generierten RSA -Privatschlüssels in die Workstation kopiert, um die Kommunikation zwischen dem Chef -Server und der Workstation zu ermöglichen.

Wir werden auf dem Workstation-Server ein RSA-Schlüsselpaar generieren. Dieser Schlüsselpaar wird verwendet, um Zugriff auf den Kochserver zu erhalten und dann ihre zu übertragen .PEM -Dateien:

root@ubuntubox2: ~# ssh -keygen -b 4096 Generierung öffentlich/privates RSA -Schlüsselpaar. Geben Sie die Datei ein, in der der Schlüssel speichert werden kann (/root/.SSH/ID_RSA): Verzeichnis erstellt '/root/.ssh '. Geben Sie Passphrase ein (ohne Passphrase leer): Geben Sie erneut die gleiche Passphrase ein: Ihre Identifizierung wurde in /root /gespeichert /wurde gespeichert.ssh/id_rsa. Ihr öffentlicher Schlüssel wurde in /root /gespeichert /.ssh/id_rsa.Pub. Der Schlüsselfingerabdruck ist: SHA256: SR+NLOQ6VSC7RX4ZMMINP3SKDK4FYEJH1ILOKNM1YMG [email protected] the Key's RandomArt-Bild lautet: + --- [RSA 4096] ---- + |… o. | |.E+ oo… | | * Ö.O… | | + o… o + | |… Oos = . | | +o = oo+ . | | Oo+oo. | | ooo.+. | | o = b =*. | + ---- [SHA256] -----+ root@ubuntubox2: ~# 

Laden Sie den öffentlichen Schlüssel des Workstation Node in den Chef -Serverknoten hoch.

root@ubuntubox2: ~# ssh-copy-id [email protected]/usr/bin/ssh-copy-ID: Info: Quelle der Schlüssel (n) zu installieren: "/root/.ssh/id_rsa.Pub "/usr/bin/ssh-copy-ID: Info: Versuch, sich mit den neuen Schlüssel (en) anzumelden, um alle bereits installiert zu filtern/usr/bin/ssh-copy-id: Info: 1 Schlüssel (s) müssen noch installiert werden - wenn Sie jetzt aufgefordert werden, die neuen Schlüsseltasten root@ubuntubox1 zu installieren.COMs Passwort: Anzahl der Schlüssel (n) hinzugefügt: 1 Versuchen Sie jetzt, sich in der Maschine anzumelden, mit: "ssh '[email protected] '"und prüfen Sie, ob nur die von Ihnen gewünschten Schlüssel hinzugefügt wurden. root@Ubuntubox2: ~# 

Kopiere das .PEM -Dateien von Ihrem Kochserver zu Ihrer Workstation mit dem SCP -Befehl.

root@Ubuntubox2: ~# scp [email protected]: ~//.Koch/*.PEM ~/Chef-Repo/.Koch/ Chefadmin.PEM 100% 1674 27.9 KB/S 00:00 Chef-On-Ubuntu.PEM 100% 1674 496.8 KB/S 00:00 

Bestätigen Sie, dass die Dateien erfolgreich kopiert wurden, indem der Inhalt des .Kochverzeichnis. Der .PEM -Dateien sollten aufgeführt sein.

root@Ubuntubox2: ~# ls ~/Chef-Repo/.Chefkoch Chefadmin.Pem Chef-on-Ubuntu.Pem 


Generieren Sie ein neues Kochkochbuch:

root@ubuntubox2: ~# Chef generieren Kochbuch-Chef-First-Cookbook-Bindestrich. Siehe https: // docs.Koch.io/ctl_chef.HTML#Chef-Generate-C-Bookbook für weitere Informationen. Generieren von Kochbuch -Chef -First -C -TOOKBOOK - Sicherstellen Sie Inhalt der korrekten Kochbuchdatei - Sicherstellen Sie die Lieferkonfiguration - Stellen Sie sicher. Geben Sie 'CD Chef-First-C-Bookbook' ein, um es einzugeben. Es gibt mehrere Befehle, die Sie ausführen können, um sich lokal zu entwickeln, um Ihr Kochbuch zu entwickeln und zu testen. Geben Sie 'Lieferung lokal -HELP' ein, um eine vollständige Liste anzuzeigen. Warum nicht mit einem Test schreiben?? Tests für das Standardrezept werden gespeichert unter: Test/Integration/Standard/Standard_test.RB, wenn Sie es vorziehen möchten, direkt hineinzugehen, finden Sie das Standardrezept unter: Rezepten/Standard.rb 

Erzeugen Sie den Kochrepo und ziehen Sie in das neu geschaffene Verzeichnis ein:

# Chef generieren App Chef-Repo # CD Chef-Repo 

Konfigurieren Sie Messer und Bootstrapping eines Client -Knotens

Erstellen Sie eine Messerkonfigurationsdatei, indem Sie zu ~/Chef-Repo/navigieren/.Chef -Verzeichnis und Erstellen einer Datei namens config.RB mit Ihrem bevorzugten Texteditor.

Kopieren Sie die folgende Konfiguration in die Konfiguration.RB -Datei:

 current_dir = Datei.DirName (__ Datei__) log_level: info log_location stdout node_name 'node_name' client_key 'Benutzer.PEM "validation_client_name 'org_name-validator' validation_key" organisation-validator.pem "Chef_Server_url 'https: // Ubuntubox1.com/organisationen/org_name 'cache_type' BasicFile 'cache_options (: path => "#env [' home ']/.Chef/Checksumas ") cookbook_path ["#current_dir/…/cookbooks "] 
Kopieren

Der Wert für node_name sollte der Benutzername sein, der auf dem Kochserver erstellt wurde.
Benutzer wechseln.PEM unter Client_Key, um die widerzuspiegeln .PEM -Datei für Chefbenutzer.
Der Validation_Client_Name sollte der org_name der Organisation sein, gefolgt von -Validator.
Organisations-Validator.PEM im Pfad validation_key sollte auf den org_name gefolgt von -Validator eingestellt werden.Pem.
Schließlich sollte der Chef_Server_url die Domain des Chef -Servers sein, wobei /organisationen /org_name angehängt sein sollte. Stellen Sie sicher, dass Sie org_name durch den Namen der Organisation ersetzen.

Wechseln Sie in das Koch-Repo-Verzeichnis und kopieren Sie die benötigten SSL-Zertifikate vom Server:

root@Ubuntubox2: ~/Chef-Repo/.Chef# CD… root@ubuntubox2: ~/Chef-Repo# Messer SSL Fetch Warnung: Zertifikate von Ubuntubox1.com wird abgerufen und in Ihr Verzeichnis Trusted_Cert (/root/Chef-Repo/) gelegt.Koch/Trusted_certs). Messer hat keine Möglichkeit zu überprüfen, dass dies die richtigen Zertifikate sind. Sie sollten die Echtheit dieser Zertifikate nach dem Herunterladen überprüfen. Hinzufügen von Zertifikat für Ubuntubox1_com in/root/Chef-Repo/.Chef/Trusted_Certs/Ubuntubox1_com.crt 


Bestätigen Sie diese Konfiguration.RB wird korrekt eingerichtet, indem die Client -Liste ausgeführt wird. Dieser Befehl sollte den Namen des Validators ausgeben.

root@ubuntubox2: ~/Chef-Repo# Messer Kundenliste Chef-On-Ubuntu-Validator 

Bootstrapping a Knode installiert den Chef -Client auf dem Knoten und validiert den Knoten. Dadurch kann der Knoten vom Chef-Server lesen und alle vom Chef-Client erkannten erforderlichen Konfigurationsaktualisierungen anwenden und anwenden.
Navigieren Sie von der Workstation zu ~/Chef-Repo//.Kochverzeichnis:

# CD ~/Chef-Repo/.Koch 

Bootstrap Der Clientknoten mit dem Root -Benutzer des Clientknotens oder einem Benutzer mit erhöhten Berechtigungen:

root@Ubuntubox2: ~/Chef-Repo/.Chef# Messer Bootstrap Ubuntubox3.com -x root -p *******-name-name Chef-Client-Node Erstellen neuer Kunde für Chef-Client-Node Erstellen neuer Knoten für Chef-Client-Node, die sich mit Ubuntubox3 anschließen.com Ubuntubox3.com ------> installieren koch omnibus (-v 14) ubuntubox3.com Herunterladen https: // omnitruck-direct.Koch.IO/Chef/Installation.Sh Ubuntubox3.com zu Datei /TMP /Installation.Sch.2019/Installation.Sh Ubuntubox3.com ausprobiert wget… Ubuntubox3.Com Ubuntu 18.04 x86_64 Ubuntubox3.com Informationen für Chef Stable 14 für Ubuntu… Ubuntubox3.com Herunterladen https: // omnitruck-direct.Koch.io/stabil/koch/metadaten?v = 14 & p = Ubuntu & Pv = 18.04 & m = x86_64 UBUNTUBOX3.com zu Datei /TMP /Installation.Sch.2023/Metadaten.Txt Ubuntubox3.com ausprobiert wget… Ubuntubox3.com sha1 ed9b1fcdaf947d9a3d60e6d196308183a082bcff Ubuntubox3.Com SHA256 9DDCD5CEEF19C95ECC1F34BEF080C23D9CB42AE8EBC69FD41DCF1C768A6A708F UBUNTUBOX3.com URL https: // pakete.Koch.IO/Dateien/Stable/Chef/14.13.11/Ubuntu/18.04/Chef_14.13.11-1_amd64.Deb Ubuntubox3.com Version 14.13.11 Ubuntubox3.com heruntergeladene Metadatendatei sieht gültig aus… Ubuntubox3.com herunterladen https: // pakete.Koch.IO/Dateien/Stable/Chef/14.13.11/Ubuntu/18.04/Chef_14.13.11-1_amd64.Deb Ubuntubox3.com zu Datei /TMP /Installation.Sch.2023/Chef_14.13.11-1_amd64.Deb Ubuntubox3.com ausprobiert wget… Ubuntubox3.com Vergleich der Prüfsumme mit SHA256SUM… Ubuntubox3.com installieren koch 14 ubuntubox3.com installieren mit dpkg… ubuntubox3.Com auswählen, die zuvor nicht ausgewählte Paketkoch auswählen. (Lesen der Datenbank… 117468 Dateien und Verzeichnisse derzeit installiert.) Ubuntubox3.com Vorbereitung auf das Auspacken… /Chef_14.13.11-1_amd64.Deb… Ubuntubox3.com packing koch (14.13.11-1)… Ubuntubox3.Com Reting Chef (14.13.11-1)… Ubuntubox3.com Danke, dass Sie den Chef Infra -Kunden installiert haben! Um Hilfe zu erhalten, besuchen Sie https: // lerne.Koch.io Ubuntubox3.com startet den ersten Kochkundenlauf… Ubuntubox3.com Startkoch Client, Version 14.13.11 Ubuntubox3.com Auflösungskochbücher für die Auslaufliste: [] Ubuntubox3.com synchronisierende Kochbücher: Ubuntubox3.com installieren Kochbuch -Edelsteine: Ubuntubox3.com kompilierende Kochbücher… Ubuntubox3.com [2019-06-03t14: 01: 44+04: 00] Warn: Knoten Chef-Client-Knoten hat eine leere Laufliste. Ubuntubox3.com Konvertierung 0 Ressourcen Ubuntubox3.com Ubuntubox3.com laufende Handler: Ubuntubox3.com laufende Handler komplett Ubuntubox3.Com Chef Client fertig, 0/0 Ressourcen in 05 Sekunden aktualisiert bestätigen, dass der Knoten durch Auflistung der Client-Knoten: root@ubuntubox2: ~/Chef-Repo/aufgelistet wurde.Koch# 

Bestätigen Sie, dass der Knoten erfolgreich durchlistet, indem die Knoten aufgeführt sind:

root@Ubuntubox2: ~/Chef-Repo/.Chef# Messerknotenliste Chef-Client-Knoten-Root@Ubuntubox2: ~/Chef-Repo/.Chef# Messerknoten Show Chef-Client-Knotenknoten Name: Chef-Client-Knoten-Umgebung: _default fqdn: Ubuntubox3.com ip: 192.168.1.107 Ausführen Liste: Rollen: Rezepte: Plattform: Ubuntu 18.04 Tags: 

Abschluss

In diesem detaillierten Artikel haben wir das Tool des Chef -Konfigurationsmanagements mit dem grundlegenden Verständnis und seiner Übersicht über seine Komponenten mit Installations- und Konfigurationseinstellungen erfahren. Sie können mehr über den Küchenchef erfahren, indem Sie die Chef -Website i besuchen i.e. https: // www.Koch.io/

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • Mastering -Bash -Skriptschleifen beherrschen
  • Verschachtelte Schleifen in Bash -Skripten
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • Dinge zu installieren auf Ubuntu 22.04
  • Wie oft müssen Sie Ihren Linux -Server neu starten??
  • Ubuntu 20.04 Leitfaden