GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

Chef ist ein Ruby-basiertes Konfigurationsmanagement-Tool, das verwendet wird, um Infrastruktur als Code zu definieren. Dadurch können Benutzer die Verwaltung vieler Knoten automatisieren und die Konsistenz über diese Knoten hinweg aufrechterhalten. Rezepte deklarieren den gewünschten Zustand für verwaltete Knoten und werden auf der Arbeitsstation eines Benutzers mit dem Chef-Arbeitsstationspaket erstellt. Ihre Rezepte werden über einen Chef-Server auf Knoten verteilt. Ein Chef-Client, der auf jedem Knoten installiert ist, ist dafür verantwortlich, das Rezept auf seinen entsprechenden Knoten anzuwenden. Diese Anleitung zeigt Ihnen, wie Sie einen Chef Server und eine Chef Workstation installieren und konfigurieren. Wir werden auch einen Knoten für die Verwaltung mit Chef booten.

In diesem Tutorial lernen Sie:

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

Chef-Architektur.

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System Ubuntu Linux 18.04
Software Chef Server Core, Chef Workstation, Chef Client, Chef Development Kit
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl.
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Installieren und konfigurieren Sie den Chef-Server

Der Chef-Server ist der Interaktionsknotenpunkt zwischen allen Arbeitsstationen und Knoten unter Chef-Verwaltung. Am Konfigurationscode auf Arbeitsstationen vorgenommene Änderungen werden an den Chef-Server gepusht und dann vom Chef-Client eines Knotens abgerufen, um die Konfigurationen anzuwenden.

Laden Sie den neuesten Chef-Server herunter, indem Sie den folgenden Befehl ausführen:

# wget https://packages.chef.io/files/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 Befehlszeilendienstprogramm namens chef-server-ctl. Führen Sie chef-server-ctl aus, um die Chef-Serverdienste zu starten.

# chef-server-ctl neu konfigurieren

Nach erfolgreicher Konfiguration des Chef-Servers sehen Sie die folgende Meldung und überprüfen auch den Betriebsstatus des Chef-Servers.

Chef Client fertig, 493/1100 Ressourcen aktualisiert in 12 Minuten 02 SekundenChef Server neu konfiguriert!
root@ubuntubox1:~# chef-server-ctl statusrun:bookshelf:(pid 1435) 6644s; Ausführen:Protokoll:(PID 1440) 6644sAusführen:nginx:(PID 1235) 6653s; run:log:(pid 1744) 6631srun:oc_bifrost:(pid 1196) 6657s; run:log:(pid 1203) 6657srun:oc_id:(pid 1220) 6655s; run:log:(pid 1227) 6655srun:opscode-erchef:(pid 4376) 6432s; run:log:(pid 1508) 6644srun:opscode-expander:(pid 1335) 6648s; run:log:(pid 1431) 6646srun:opscode-solr4:(pid 1244) 6650s; run:log:(pid 1285) 6649srun:postgresql:(pid 1176) 6659s; run:log:(pid 1180) 6659srun:rabbitmq:(pid 4188) 6443s; run:log:(pid 1748) 6631srun:redis_lb:(pid 27397) 6931s; run:log:(pid 1735) 6632sroot@ubuntubox1:~#

Chef-Benutzer und -Organisation erstellen

Um Arbeitsstationen und Knoten mit dem Chef-Server zu verknüpfen, erstellen Sie einen Administrator und eine Organisation mit zugehörigen privaten RSA-Schlüsseln.
Erstellen Sie aus dem Home-Verzeichnis ein .chef-Verzeichnis, um die Schlüssel zu speichern.

# mkdir .chef

Verwenden Sie chef-server-ctl, um einen Benutzer zu erstellen. Ändern Sie in diesem Beispiel Folgendes entsprechend Ihren Anforderungen:USER_NAME, FIRST_NAME, LAST_NAME, EMAIL und PASSWORD. Passen Sie USER_NAME.pem an und lassen Sie die Erweiterung .pem.

chef-server-ctl user-create USER_NAME FIRST_NAME NACHNAME E-MAIL 'PASSWORT' --filename ~/.chef/USER_NAME.pem
root@ubuntubox1:~# chef-server-ctl user-create chefadmin Chef-Administrator chefadmin@@ubuntubox1.com '*******' --filename ~/.chef/chefadmin.pem

Geben Sie den folgenden Befehl ein, um die Liste aller Benutzer auf Ihrem Chef-Server anzuzeigen:

root@ubuntubox1:~# chef-server-ctl user-listchefadminpivotal

Erstellen Sie eine Organisation und fügen Sie den im vorherigen Schritt erstellten Benutzer hinzu. Ersetzen Sie ORG_NAME durch eine Kurzkennung für die Organisation, ORG_VOLLSTÄNDIGER_NAME durch den vollständigen Namen der Organisation, BENUTZERNAME durch den im obigen Schritt erstellten Benutzernamen und ORG_NAME.pem durch die Kurzkennung der Organisation, gefolgt von .pem.

chef-server-ctl org-create ORG_NAME "ORG_FULL_NAME" --association_user USER_NAME --filename ~/.chef/ORG_NAME.pem
root@ubuntubox1:~# chef-server-ctl org-create chef-on-ubuntu "Chef Infrastructure on Ubuntu 18.04" --association_user chefadmin --filename ~/.chef/chef-on-ubuntu.pem 

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

root@ubuntubox1:~# chef-server-ctl org-listchef-on-ubuntu

Nachdem der Chef-Server installiert und die RSA-Schlüssel generiert wurden, beginnen wir mit der Konfiguration der Chef-Workstation. Auf der Arbeitsstation werden alle wichtigen Konfigurationen für Ihre Knoten erstellt.

Installieren und konfigurieren Sie die Chef-Workstation

Auf der Chef-Arbeitsstation erstellen und konfigurieren Sie alle Rezepte, Kochbücher, Attribute und andere Änderungen, die zum Verwalten Ihrer Knoten erforderlich sind. Obwohl dies ein lokaler Computer sein kann, auf dem ein beliebiges Betriebssystem ausgeführt wird, hat es einige Vorteile, einen Remote-Server als Arbeitsstation zu behalten, sodass Sie von überall darauf zugreifen können.

In diesem Abschnitt laden Sie das Chef Workstation-Paket herunter und installieren es, das alle Tools bereitstellt, die auch im ChefDK, dem Entwicklungskit von Chef, enthalten sind.

Laden Sie die neueste Chef Workstation herunter:

root@ubuntubox2:~# wget https://packages.chef.io/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.deb--2019-06 -03 13:35:51-- https://packages.chef.io/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.debResolving packages.chef.io ( packages.chef.io)... 151.101.142.110Verbinde mit packages.chef.io (packages.chef.io)|151.101.142.110|:443... verbunden.HTTP-Anfrage gesendet, wartet auf Antwort... 200 OKLänge:129713682 (124M) [application/x-debian-package]Speichern unter:„chef-workstation_0.2.43-1_amd64.deb“chef-workstation_0.2.43-1_amd64.deb 100 %[==================================================================================>] 123.70M 1.51MB/s in 80s2019-06-03 13:37:17 (1.55 MB/s) - 'chef-workstation_0.2.43-1_amd64.deb' gespeichert [129713682/129713682]

Chef Workstation installieren:

root@ubuntubox2:~# dpkg -i chef-workstation_*.debAuswahl des zuvor nicht ausgewählten Pakets chef-workstation.(Lesen der Datenbank ... 117468 Dateien und Verzeichnisse derzeit installiert.)Vorbereitung zum Entpacken von chef-workstation_0.2.43-1_amd64. deb ... Entpacken von chef-workstation (0.2.43-1) ... Einrichten von chef-workstation (0.2.43-1) ... Um die experimentelle Chef Workstation App auszuführen, verwenden Sie den Paketmanager Ihrer Plattform, um diese Abhängigkeiten zu installieren:libgconf-2.so.4 => not foundSie können die App dann starten, indem Sie „chef-workstation-app“ ausführen. Die App ist dann in der Taskleiste verfügbar. Vielen Dank, dass Sie Chef Workstation installiert haben! Einige Tipps finden Sie unter Erste Schritte unter https://chef.sh/

Jetzt müssen wir das Chef-Repository erstellen. Das chef-repo-Verzeichnis speichert Ihre Chef-Kochbücher und andere zugehörige Dateien.

# Chef generiert Repo Chef-Repo

Erstellen Sie ein .chef-Unterverzeichnis. Das Unterverzeichnis .chef speichert die Knife-Konfigurationsdatei und die .pem-Dateien, die für die RSA-Schlüsselpaarauthentifizierung mit dem Chef-Server verwendet werden. Wechseln Sie in das chef-repo-Verzeichnis:

root@ubuntubox2:~# mkdir ~/chef-repo/.chefroot@ubuntubox2:~# cd chef-reporoot@ubuntubox2:~/chef-repo#

Die Authentifizierung zwischen dem Chef-Server und der Arbeitsstation und/oder den Knoten wird mit der Verschlüsselung mit öffentlichem Schlüssel abgeschlossen. Dadurch wird sichergestellt, dass der Chef-Server nur mit vertrauenswürdigen Computern kommuniziert. In diesem Abschnitt werden die privaten RSA-Schlüssel, die beim Einrichten des Chef-Servers generiert wurden, auf die Arbeitsstation kopiert, um die Kommunikation zwischen dem Chef-Server und der Arbeitsstation zu ermöglichen.

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

root@ubuntubox2:~# ssh-keygen -b 4096Öffentliches/privates RSA-Schlüsselpaar wird generiert. Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/root/.ssh/id_rsa):Erstelltes Verzeichnis „/root/.ssh“. Geben Sie die Passphrase ein (leer für keine Passphrase):Geben Sie die gleiche Passphrase erneut ein:Ihre Identifikation wurde in /root/.ssh/id_rsa gespeichert. Ihr öffentlicher Schlüssel wurde in /root/.ssh/id_rsa.pub gespeichert. Der Schlüsselfingerabdruck lautet:SHA256:sR+Nloq6vsc7rX4ZmMInP3SKdk4fYEJH1iLoKNm1YMg [email protected] Randomart-Bild des Schlüssels ist:+---[RSA 4096]----+|.. . Ö. ||.E+ oo. . || * o.o... ||+ o... o + ||. .. ooS =. || +o=oo+ . || Oo+oo. || ooO.+. || o=B=*. |+----[SHA256]-----+root@ubuntubox2:~#

Laden Sie den öffentlichen Schlüssel des Arbeitsstationsknotens auf den Chef-Serverknoten hoch.

root@ubuntubox2:~# ssh-copy-id [email protected]/usr/bin/ssh-copy-id:INFO:Quelle der zu installierenden Schlüssel:"/root/.ssh/id_rsa .pub"/usr/bin/ssh-copy-id:INFO:Versuch, sich mit dem/den neuen Schlüssel(n) anzumelden, um alle bereits installierten herauszufiltern/usr/bin/ssh-copy-id:INFO:1 key(s) müssen noch installiert werden -- wenn Sie jetzt aufgefordert werden, installieren Sie das neue Passwort von [email protected]:Anzahl der hinzugefügten Schlüssel:ubuntubox1.com“ und vergewissern Sie sich, dass nur die gewünschten Schlüssel hinzugefügt wurden.root@ubuntubox2:~#

Kopieren Sie die .pem-Dateien mit dem scp-Befehl von Ihrem Chef-Server auf Ihre Workstation.

root@ubuntubox2:~# scp [email protected]:~/.chef/*.pem ~/chef-repo/.chef/chefadmin.pem 100% 1674 27,9KB/s 00:00chef-on-ubuntu .pem 100 % 1674 496,8 KB/s 00:00

Bestätigen Sie, dass die Dateien erfolgreich kopiert wurden, indem Sie den Inhalt des Verzeichnisses .chef auflisten. Die .pem-Dateien sollten aufgelistet werden.

root@ubuntubox2:~# ls ~/chef-repo/.chefchefadmin.pem chef-on-ubuntu.pem

Erstellen Sie ein neues Chef-Kochbuch:

root@ubuntubox2:~# Chef generiert Kochbuch Chef-zuerst-Kochbuch Bindestriche werden in Kochbuchnamen nicht empfohlen, da sie Probleme mit benutzerdefinierten Ressourcen verursachen können. Weitere Informationen finden Sie unter https://docs.chef.io/ctl_chef.html#chef-generate-cookbook. Generieren des Kochbuchs chef-first-cookbook – Sicherstellen des korrekten Inhalts der Kochbuchdatei – Sicherstellen der Bereitstellungskonfiguration – Sicherstellen der korrekten Bereitstellung – Erstellung des Kochbuchinhalts Ihr Kochbuch ist bereit. Geben Sie „cd chef-first-cookbook“ ein, um es aufzurufen. Es gibt mehrere Befehle, die Sie ausführen können, um Ihr Kochbuch lokal zu entwickeln und zu testen. Geben Sie „delivery local --help“ ein, um eine vollständige Liste anzuzeigen Prüfung? Tests für das Standardrezept sind gespeichert unter:test/integration/default/default_test.rbWenn Sie lieber direkt eintauchen möchten, finden Sie das Standardrezept unter:recipes/default.rb

Generieren Sie das Chef-Repo und wechseln Sie in das neu erstellte Verzeichnis:

# chef generiert app chef-repo# cd chef-repo

Messer und Bootstrapping eines Client-Knotens konfigurieren

Erstellen Sie eine Messerkonfigurationsdatei, indem Sie zum Verzeichnis ~/chef-repo/.chef navigieren und mit Ihrem bevorzugten Texteditor eine Datei namens config.rb erstellen.

Kopieren Sie die folgende Konfiguration in die Datei config.rb:


current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                'node_name'
client_key               "USER.pem"
validation_client_name   'ORG_NAME-validator'
validation_key           "ORGANIZATION-validator.pem"
chef_server_url          'https://ubuntubox1.com/organizations/ORG_NAME'
cache_type               'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path            ["#{current_dir}/../cookbooks"]
 

Der Wert für node_name sollte der Benutzername sein, der auf dem Chef-Server erstellt wurde.
Ändern Sie USER.pem unter client_key, um die .pem-Datei für den Chef-Benutzer widerzuspiegeln.
validation_client_name sollte der ORG_NAME der Organisation sein, gefolgt von - validator.
ORGANIZATION-validator.pem im validation_key-Pfad sollte auf ORG_NAME gesetzt werden, gefolgt von -validator.pem.
Schließlich sollte die chef_server_url die Domäne des Chef-Servers mit angehängtem /organizations/ORG_NAME sein. Achten Sie darauf, ORG_NAME durch den Namen der Organisation zu ersetzen.

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

root@ubuntubox2:~/chef-repo/.chef# cd ..root@ubuntubox2:~/chef-repo# knife ssl fetchWARNUNG:Zertifikate von ubuntubox1.com werden abgerufen und in Ihrem trusted_certdirectory (/root/ chef-repo/.chef/trusted_certs).Knife kann nicht überprüfen, ob es sich um die richtigen Zertifikate handelt. Sie sollten die Echtheit dieser Zertifikate nach dem Herunterladen überprüfen. Zertifikat für ubuntubox1_com in /root/chef-repo/.chef/trusted_certs/ubuntubox1_com.crt hinzufügen

Bestätigen Sie, dass config.rb korrekt eingerichtet ist, indem Sie die Client-Liste ausführen. Dieser Befehl sollte den Prüfernamen ausgeben.

root@ubuntubox2:~/chef-repo# knife client listchef-on-ubuntu-validator

Beim Bootstrapping eines Knotens wird der Chef-Client auf dem Knoten installiert und der Knoten validiert. Dadurch kann der Knoten vom Chef-Server lesen und alle vom Chef-Client erkannten erforderlichen Konfigurationsaktualisierungen herunterladen und anwenden.
Navigieren Sie auf der Arbeitsstation zum Verzeichnis ~/chef-repo/.chef:

# cd ~/chef-repo/.chef

Bootstrapping des Client-Knotens entweder unter Verwendung des Root-Benutzers des Client-Knotens oder eines Benutzers mit erhöhten Rechten:

root@ubuntubox2:~/chef-repo/.chef# knife bootstrap ubuntubox3.com -x root -P ******* --node-name chef-client-nodeCreating new client for chef-client- nodeErstellen eines neuen Knotens für chef-client-nodeVerbindung mit ubuntubox3.comubuntubox3.com -----> Installieren von Chef Omnibus (-v 14)ubuntubox3.com Herunterladen von https://omnitruck-direct.chef.io/chef/install.shubuntubox3 .com in die Datei /tmp/install.sh.2019/install.shubuntubox3.com versuche wget...ubuntubox3.com ubuntu 18.04 x86_64ubuntubox3.com Abrufen von Informationen für Chef Stable 14 für ubuntu...ubuntubox3.com Herunterladen von https:// omnitruck-direct.chef.io/stable/chef/metadata?v=14&p=ubuntu&pv=18.04&m=x86_64ubuntubox3.com in die Datei /tmp/install.sh.2023/metadata.txtubuntubox3.com und versuche wget...ubuntubox3.com sHA1 ed9b1fcdaf947d9a3d60e6d196308183a082bcffubuntubox3.com sha256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708fubuntubox3.com url https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64. debubuntubox3.com Version 14.13.11 Die von ubuntubox3.com heruntergeladene Metadatendatei sieht gültig aus ... ubuntubox3.com lädt https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64 herunter .debubuntubox3.com in die Datei /tmp/install.sh.2023/chef_14.13.11-1_amd64.debubuntubox3.com versuche wget...ubuntubox3.com Vergleich der Prüfsumme mit sha256sum...ubuntubox3.com Installation von chef 14ubuntubox3.com Installation mit dpkg ...ubuntubox3.com Wählt zuvor nicht ausgewähltes Paket chef aus. (Datenbank wird gelesen ... 117468 Dateien und Verzeichnisse sind derzeit installiert.)ubuntubox3.com Vorbereitung zum Entpacken .../chef_14.13.11-1_amd64.deb ...ubuntubox3.com Entpacken chef (14.13.11-1) ...ubuntubox3.com Einrichten von chef (14.13.11-1) ...ubuntubox3.com Vielen Dank, dass Sie Chef Infra Client installiert haben! Um Hilfe beim Einstieg zu erhalten, besuchen Sie https://learn.chef.ioubuntubox3.com Starten des ersten Chef-Client-Laufs ...ubuntubox3.com Starten des Chef-Clients, Version 14.13.11ubuntubox3.com Auflösen von Kochbüchern für die Ausführungsliste:[]ubuntubox3.com Synchronisieren Cookbooks:ubuntubox3.com Cookbook Gems installieren:ubuntubox3.com Cookbooks kompilieren...ubuntubox3.com [2019-06-03T14:01:44+04:00] WARN:Node chef-client-node has an empty run list.ubuntubox3 .com Converging 0 resourcesubuntubox3.comubuntubox3.com Running handlers:ubuntubox3.com Running handlers completeubuntubox3.com Chef Client beendet, 0/0 Ressourcen aktualisiert in 05 SekundenBestätigen Sie, dass der Knoten gebootstrapped wurde, indem Sie die Client-Knoten auflisten:root@ubuntubox2:~/ chef-repo/.chef# 

Bestätigen Sie, dass der Knoten erfolgreich gebootet wurde, indem Sie die Knoten auflisten:

root@ubuntubox2:~/chef-repo/.chef# Messerknoten listchef-client-noderoot@ubuntubox2:~/chef-repo/.chef# Messerknoten show chef-client-nodeNode Name:chef-client-nodeEnvironment :_defaultFQDN:ubuntubox3.comIP:192.168.1.107Ausführungsliste:Rollen:Rezepte:Plattform:ubuntu 18.04Tags:

Schlussfolgerung

In diesem ausführlichen Artikel haben wir das Chef Configuration Management Tool mit seinem grundlegenden Verständnis und Überblick über seine Komponenten mit Installations- und Konfigurationseinstellungen kennengelernt. Sie können mehr über Chef erfahren, indem Sie die Chef-Website besuchen, z. B. https://www.chef.io/


Ubuntu
  1. So installieren Sie NTP-Server und -Client unter Ubuntu 18.04 LTS

  2. So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 20.04

  3. So installieren Sie NFS-Client und -Server unter Ubuntu 20.04

  4. Installieren Sie UrBackup Server und Client auf Ubuntu 20.04 – wie geht das?

  5. Installieren Sie vnc-Server und -Client auf Ubuntu

So installieren und führen Sie Lynis unter Ubuntu Linux aus

So installieren Sie NFS-Server und -Client unter Ubuntu

So installieren Sie NTP-Server und -Client auf Ubuntu

So installieren Sie UrBackup Server und Client auf Ubuntu 20.04

So installieren Sie Telnet-Server und -Client unter Ubuntu

So installieren Sie NTP-Server und Client(s) unter Ubuntu 20.04 LTS