Chef ist ein leistungsstarkes Dienstprogramm zur Konfigurationsverwaltung, das Infrastruktur in Code umwandelt. Mit dem Chef können Benutzer die Ressourcen im gesamten Netzwerk vom zentralen Standort aus unabhängig von der Umgebung (Cloud, On-Premises oder Hybrid) einfach verwalten, konfigurieren und bereitstellen. Dieser Beitrag hilft Ihnen bei der Einrichtung von Chef 12 unter CentOS 7 / RHEL 7
Beginnend mit der Veröffentlichung von Chef-Server 11 ist das Front-End des Chef-Servers in Erlang geschrieben und der Client verwendet Ruby, um Konfigurationsänderungen zu handhaben.
Komponenten von Chef:
Chef besteht aus einem Chef-Server, einer oder mehreren Arbeitsstationen und einem Knoten, auf dem der Chef-Client installiert ist. Der Komponentenname basiert auf den Rollen, die jede Maschine im Chef-Ökosystem spielt.
Chef-Server :Dies ist der zentrale Hub-Server, der die von Workstations hochgeladenen Kochbücher und Rezepte speichert, auf die dann der Chef-Client zur Bereitstellung der Konfiguration zugreift.
Chef-Workstations :Hier werden Rezepte, Kochbücher und andere Konfigurationsdetails des Küchenchefs erstellt oder bearbeitet. All diese werden dann von der Arbeitsstation auf den Chef-Server übertragen, wo sie für die Bereitstellung auf Chef-Client-Knoten verfügbar sind.
Chef-Client :Dies ist der Zielknoten, auf dem die Konfigurationen bereitgestellt werden, in denen der Chef-Client installiert ist. Ein Knoten kann jede Maschine sein (physisch, virtuell, Cloud, Netzwerkgerät usw.)
Chef 12 auf CentOS 7 einrichten:
Systemanforderungen / Umgebung:
Stellen Sie sicher, dass Ihr System die folgenden Ressourcenanforderungen erfüllt. Hier verwende ich CentOS 7 als Basisbetriebssystem für die Chef-Installation.
HOSTNAME | IP-ADRESSE | Betriebssystem | Prozessor | SPEICHER | DISK | ZWECK |
---|---|---|---|---|---|---|
chefserver.itzgeek.local | 192.168.12.11 | CentOS 7 | 4 | 4 GB | 40 GB | Chef-Server |
chefdk.itzgeek.local | 192.168.12.12 | CentOS 7 | 1 | 512 MB | NA | Chef Workstation (Chef Development Kit) |
chefclient.itzgeek.local | 192.168.12.20 | CentOS 7 | 1 | 512 MB | NA | Chef-Client |
Voraussetzungen:
Der Host sollte einen vollständig qualifizierten Domänennamen haben.
Sollte einen DNS- oder Host-Eintrag haben.
vi /etc/hosts 192.168.12.11 chefserver.itzgeek.local chefserver 192.168.12.12 chefdk.itzgeek.local chefdk 192.168.12.20 chefclient.itzgeek.local chefclient
Wget-Paket installieren.
yum -y install wget
Chef-Server:
Der Chef-Server fungiert als zentraler Knotenpunkt für Konfigurationsdaten. Der Server speichert Kochbücher, die Richtlinien, die auf Knoten angewendet werden, und Metadaten, die sich auf einen registrierten Knoten beziehen. Der registrierte Knoten verwendet den Chef-Client, um den Chef-Server nach Konfigurationsdetails wie Rezepten, Vorlagen und Dateiverteilung zu fragen.
Installieren und konfigurieren Sie den Chef-Server:
Laden Sie die neueste Version des Chef-Serverkerns herunter (12.10 zum Zeitpunkt des Schreibens).
wget https://packages.chef.io/stable/el/7/chef-server-core-12.10.0-1.el7.x86_64.rpm
Sobald der Download abgeschlossen ist, installieren Sie den Chef-Serverkern mit dem folgenden Befehl.
rpm -ivh chef-server-core-*.rpm
Wenn Ihr Chef-Serversystem die empfohlenen Hardwareanforderungen nicht erfüllt, kann dieser Schritt fehlschlagen.
Sobald die Installation abgeschlossen ist, müssen Sie die Chef-Serverkomponenten neu konfigurieren, damit der Server zusammenarbeitet. Die Neukonfiguration kann etwas länger dauern .
chef-server-ctl reconfigure
Überprüfen Sie den Status der Chef Server-Komponenten mit dem folgenden Befehl.
chef-server-ctl status
Ausgabe:
run: bookshelf: (pid 6084) 387s; run: log: (pid 6114) 385s run: nginx: (pid 5973) 417s; run: log: (pid 6276) 359s run: oc_bifrost: (pid 5816) 477s; run: log: (pid 5831) 476s run: oc_id: (pid 5961) 420s; run: log: (pid 5966) 419s run: opscode-erchef: (pid 6186) 379s; run: log: (pid 6176) 381s run: opscode-expander: (pid 6039) 388s; run: log: (pid 6071) 388s run: opscode-solr4: (pid 5992) 399s; run: log: (pid 5999) 398s run: postgresql: (pid 5805) 478s; run: log: (pid 5809) 477s run: rabbitmq: (pid 5767) 480s; run: log: (pid 5760) 481s run: redis_lb: (pid 5377) 595s; run: log: (pid 6272) 359s
Erstellen Sie einen Admin-Benutzer und eine Organisation:
Wir müssen einen Admin-Benutzer erstellen. Dieser Benutzer hat Zugriff, um Änderungen an den Infrastrukturkomponenten in der Organisation vorzunehmen, die wir erstellen werden. Der folgende Befehl generiert automatisch den privaten RSA-Schlüssel und sollte an einem sicheren Ort gespeichert werden.
Benutzerdetails sind unten.
Benutzername :Administrator
Vorname :Administrator
Nachname :Administrator
E-Mail :[email protected]
Passwort :Passwort
Dateiname :admin.pem
Pfad :/etc/chef
chef-server-ctl user-create admin admin admin [email protected] password -f /etc/chef/admin.pem
Ursprünglicher Befehl:
chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' -f PATH_FILE_NAME
Es ist an der Zeit, dass wir eine Organisation gründen, die die Kochkonfigurationen hält.
Kurzname :itzgeek (Hinweis:Der Name muss mit einem Kleinbuchstaben oder einer Ziffer beginnen, darf Kleinbuchstaben, Zahlen, Bindestriche und Unterstriche enthalten und muss zwischen 1 und 255 Zeichen lang sein )
Vollständiger Name der Organisation :ITzGeek Inc (Hinweis:Muss mit einem Nicht-Leerzeichen beginnen und zwischen 1 und 1023 Zeichen lang sein )
Verknüpfungsbenutzer :admin (Hinweis:Diese Option verknüpft den zuvor erstellten Benutzer (admin ) mit den Admins Sicherheitsgruppe auf dem Chef-Server )
Dateiname :itzgeek-validator.pem (Hinweis:Der Befehl generiert den privaten RSA-Schlüssel automatisch und sollte an einem sicheren Ort gespeichert werden )
Pfad :/etc/chef
chef-server-ctl org-create itzgeek "ITzGeek, Inc" --association_user admin -f /etc/chef/itzgeek-validator.pem
Ursprünglicher Befehl:
chef-server-ctl org-create short_name 'full_organization_name' --association_user user_name --filename ORGANIZATION-validator.pem
Ab jetzt haben Sie zwei .pem Schlüssel in /etc/chef Verzeichnis. In unserem Fall heißen sie admin.pem und itzgeek-validator.pem . Bald werden wir diese beiden Dateien auf der Chef-Workstation-Maschine platzieren.
Firewall:
Für den Chef-Server müssen die folgenden Ports durch die Firewall geöffnet sein. Aber nur 80 und 443 aktivieren würde auch für uns reichen.
Führen Sie den folgenden Befehl aus, um 80 und 443 zuzulassen durch die Firewall.
firewall-cmd --permanent --zone public --add-service http firewall-cmd --permanent --zone public --add-service https firewall-cmd --reloadSeiten:1 2 3