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

Anleitung zum Installieren und Einrichten von Chef Workstation unter Linux

Chef ist eine Software zur Automatisierung der IT-Infrastruktur, mit der Sie alle Ihre Server und Netzwerkgeräte in Ihrer Organisation verwalten können .

Sie benötigen eine Chef-Workstation, wenn Sie mit dem Chef-Server oder anderen physischen Knoten (Server, Netzwerkgeräte usw.) in Ihrer Infrastruktur interagieren möchten.

Auf einer Koch-Workstation können Sie mit mehreren kochbezogenen Befehlen (z. B. Messer) Kochbücher erstellen oder Rezepte erstellen, die auf den einzelnen Knoten ausgeführt werden. Sie können einen neuen Knoten auch von der Chef-Workstation booten.

In diesem Tutorial wird erläutert, wie Sie die Chef-Workstation auf einem Linux-Server installieren und konfigurieren.

ChefDK herunterladen

ChefDK steht für Chef Development Kit. ChefDK ist für fast alle Plattformen verfügbar, einschließlich Debian-basierter Distributionen, Ubuntu, RedHat-basierter Distributionen wie CentOS, Mac OS X und Windows.

Die aktuelle stabile Version von ChefDK ist 0.11.2. Für RHEL-basierte Systeme ist sie sowohl für Version 6 als auch für Version 7 (d. h. CentOS 6 und CentOS 7) verfügbar. Die verpackte RPM-Version ist nur für die 64-Bit-Version verfügbar.

Laden Sie es von hier herunter oder verwenden Sie die direkte URL wie unten gezeigt.

Verwenden Sie für CentOS 7 Folgendes:

cd ~
wget https://packages.chef.io/stable/el/7/chefdk-0.11.2-1.el7.x86_64.rpm

Verwenden Sie für CentOS 6 Folgendes:

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

Installieren Sie ChefDK

Installieren Sie ChefDK mit dem RPM, das wir oben heruntergeladen haben.

# rpm -ivh chefdk-0.11.2-1.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:chefdk-0.11.2-1.el7              ################################# [100%]
Thank you for installing Chef Development Kit!

Dadurch wird ChefDK wie unten gezeigt unter /opt/chefdk installiert.

# ls -l /opt/chefdk/
drwxr-xr-x. 2 root root  4096 Mar  3 13:50 bin
drwxr-xr-x. 7 root root    62 Mar  3 13:50 embedded
-rw-r--r--. 1 root root 13249 Feb 22 14:26 version-manifest.json
-rw-r--r--. 1 root root  8233 Feb 22 14:26 version-manifest.txt

Überprüfen Sie die ChefDK-Installation

Führen Sie Chef Verify aus, das alle verschiedenen Komponenten überprüft, die mit ChefDK geliefert werden, um sicherzustellen, dass sie alle ordnungsgemäß und ohne Probleme funktionieren, wie unten gezeigt.

# chef verify
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'tk-policyfile-provisioner'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'generated-cookbooks-pass-chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
Running verification for component 'inspec'
.......
---------------------------------------------
Verification of component 'test-kitchen' succeeded.
Verification of component 'chef-dk' succeeded.
Verification of component 'chefspec' succeeded.
Verification of component 'rubocop' succeeded.
Verification of component 'knife-spork' succeeded.
Verification of component 'openssl' succeeded.
Verification of component 'berkshelf' succeeded.
Verification of component 'chef-client' succeeded.
Verification of component 'fauxhai' succeeded.
Verification of component 'inspec' succeeded.
Verification of component 'tk-policyfile-provisioner' succeeded.
Verification of component 'kitchen-vagrant' succeeded.
Verification of component 'chef-provisioning' succeeded.
Verification of component 'package installation' succeeded.
Verification of component 'generated-cookbooks-pass-chefspec' succeeded.

Das Folgende ist ein Beispielfall, in dem die Chefverifizierung fehlgeschlagen ist. Bitte beachten Sie auch, dass Ruby von Chef benötigt wird, das in ChefDK eingebettet ist.

# chef verify
..
/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:289:in `invalid!': Expected process to exit with [0], but received '1' (Mixlib::ShellOut::ShellCommandFailed)
---- Begin output of /usr/bin/ohai -v ----
STDOUT: 
STDERR: /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'chef-config' (= 12.8.0) - did find: [chef-config-12.7.2] (Gem::LoadError)

Wir erhalten diese Fehlermeldung:„Could not find ‚chef-config‘ (=12.8.0) – did find:[chef-config-12.7.2] (Gem::LoadError)“

In der obigen Fehlermeldung war die mit ChefDK gelieferte chef-config 12.7.2, eine ältere Version, die in diesem Setup nicht kompatibel war. In diesem Fall habe ich also die chef-config-Version 12.8.0 manuell installiert.

Als ich danach die Chefüberprüfung durchführte, wurde die obige Fehlermeldung nicht angezeigt.

Überprüfen Sie die ChefDK-Version

Wenn Sie den Befehl chef –version ausführen, wird die Versionsnummer von ChefDK und aller damit gelieferten Komponenten wie unten gezeigt angezeigt.

# chef --version
Chef Development Kit Version: 0.11.2
chef-client version: 12.7.2
berks version: 4.2.0
kitchen version: 1.5.0

Chef-ENV-Variablen einrichten

Sie sollten auch Chef-bezogene Umgebungsvariablen einrichten. Zum Beispiel:GEM_ROOT, GEM_HOME, GEM_PATH.

export GEM_ROOT="/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
export GEM_HOME="/root/.chefdk/gem/ruby/2.1.0"
export GEM_PATH="/root/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0"

Wenn Sie Ruby bereits auf Ihrem System installiert haben, sollten Sie Ihre PATH-Variable entsprechend aktualisieren, um das mit chefDK gelieferte Ruby zu verwenden, wie unten gezeigt.

export PATH="/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/opt/chefdk/bin:/root/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

Der folgende Befehl zeigt Ihnen alle Chef-Umgebungsvariablen, die gesetzt werden sollten.

chef shell-init bash

Der schnelle Weg, diese Umgebungsvariable festzulegen, besteht darin, die obige Zeile wie unten gezeigt zu Ihrer .bash_profile-Datei hinzuzufügen.

echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile

Firewallregeln für den Zugriff auf Chef Manage

Als Nächstes müssen Sie das Chef-Starterkit von Ihrem bereits laufenden Chef-Server herunterladen.

Um auf Ihre Chef Manage-GUI zuzugreifen, fügen Sie auf dem Chef-Server die folgenden Firewall-Regeln hinzu, um die entsprechenden Ports auf dem Chef-Server zu öffnen.

firewall-cmd --direct  --add-rule ipv4 \
filter INPUT_direct 0 -i eth0 -p tcp \
 --dport 443 -j ACCEPT

firewall-cmd --direct  --add-rule ipv4 \
filter INPUT_direct 0 -i eth0 -p tcp \
 --dport 80 -j ACCEPT

firewall-cmd --direct  --add-rule ipv4 \
filter INPUT_direct 0 -i eth0 -p tcp \
 --dport 9683 -j ACCEPT

firewall-cmd --reload

Laden Sie das Starter-Kit von der Chef Manage GUI herunter

Melden Sie sich bei der Chef Manage GUI an und klicken Sie oben auf die Registerkarte „Administration“. Wählen Sie als Nächstes die Organisation aus der Liste aus. In diesem Beispiel lautet der Organisationsname „Beispiel“. Sobald die Organisation ausgewählt ist, klicken Sie im Menü auf der linken Seite auf „Starter Kit“, wie unten gezeigt.

Wenn Sie auf „Herunterladen“ klicken, erhalten Sie diese Warnmeldung:Sind Sie sicher?:Ihre Benutzer- und Organisationsschlüssel werden zurückgesetzt. Sind Sie sicher, dass Sie dies tun möchten?.

Klicken Sie auf Fortfahren. Dadurch wird die Datei chef-starter.zip auf Ihren lokalen Computer heruntergeladen.

Starter-Kit entpacken

Übertragen Sie die Datei chef-starter.zip auf die Chef-Arbeitsstation und entpacken Sie sie im Home-Verzeichnis von root, wie unten gezeigt.

# cd ~
# unzip chef-starter.zip 
Archive:  chef-starter.zip
   creating: chef-repo/cookbooks/
   creating: chef-repo/cookbooks/starter/
   creating: chef-repo/cookbooks/starter/templates/
   creating: chef-repo/cookbooks/starter/templates/default/
  inflating: chef-repo/cookbooks/starter/templates/default/sample.erb  
   creating: chef-repo/cookbooks/starter/files/
   creating: chef-repo/cookbooks/starter/files/default/
  inflating: chef-repo/cookbooks/starter/files/default/sample.txt  
   creating: chef-repo/cookbooks/starter/recipes/
  inflating: chef-repo/cookbooks/starter/recipes/default.rb  
   creating: chef-repo/cookbooks/starter/attributes/
  inflating: chef-repo/cookbooks/starter/attributes/default.rb  
  inflating: chef-repo/cookbooks/starter/metadata.rb  
  inflating: chef-repo/cookbooks/chefignore  
  inflating: chef-repo/README.md     
  inflating: chef-repo/.gitignore    
   creating: chef-repo/.chef/
   creating: chef-repo/roles/
  inflating: chef-repo/.chef/knife.rb  
  inflating: chef-repo/roles/starter.rb  
  inflating: chef-repo/.chef/ramesh.pem  
  inflating: chef-repo/.chef/example-validator.pem

Wenn Sie den chef-repo-Ordner manuell einrichten, müssen Sie die oben genannten Unterverzeichnisse manuell erstellen und die Datei knife.rb, die Datei organization-validator.pem (zum Beispiel:example-validator.pem) und kopieren username.pem-Datei (zum Beispiel:ramesh.pem) in die oben angezeigten Verzeichnisse.

Holen Sie sich das Chef Server SSL-Zertifikat

Wenn Sie zu diesem Zeitpunkt die Messer-Client-Liste ausführen, erhalten Sie diese Fehlermeldung wie unten gezeigt:„ERROR:SSL Validation failure connection to host certificate verify failed“

# cd ~/chef-repo
# knife client list
ERROR: SSL Validation failure connecting to host: centos.example.com - SSL_connect returned=1 errno=0 state=error: certificate verify failed
ERROR: Could not establish a secure connection to the server.
Use `knife ssl check` to troubleshoot your SSL configuration.
If your Chef Server uses a self-signed certificate, you can use
`knife ssl fetch` to make knife trust the server's certificates.

Original Exception: OpenSSL::SSL::SSLError: SSL Error connecting to https://centos.example.com/organizations/example/clients - SSL_connect returned=1 errno=0 state=error: certificate verify failed

Die Zertifikatsüberprüfung ist fehlgeschlagen, da das SSL-Zertifikat noch nicht vom Chef-Server heruntergeladen wurde.

Führen Sie dazu den folgenden „knife ssl fetch“-Befehl wie unten gezeigt aus.

# cd ~/chef-repo
# knife ssl fetch
WARNING: Certificates from centos.example.com will be fetched and placed in your trusted_cert
directory (/root/chef-repo/.chef/trusted_certs).

Knife has no means to verify these are the correct certificates. You should
verify the authenticity of these certificates after downloading.

Dadurch wird das Zertifikat in das folgende truster_certs-Verzeichnis heruntergeladen.

# ls -l /root/chef-repo/.chef/trusted_certs
-rw-r--r--. 1 root root 1379 Mar 20 20:17 centos_example_com.crt

# cat /root/chef-repo/.chef/trusted_certs/centos_example_com.crt 
-----BEGIN CERTIFICATE-----
MIIDzDCCArSgAwIBAgIBADANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJVUzEQ
MA4GA1UECgwHWW91Q29ycDETMBEGA1UECwwKT3BlcmF0aW9uczEbMBkGA1UEAwwS
ZXJhdGlvbnMxGzAZBgNVBAMMEmNlbnRvcy5leGFtcGxlLmNvbTCCASIwDQYJKoZI
..
..
WLyr2ORLMcck/OGsubabO/koMNTqhl2JJPECNiDJh06MeZ/2+BOwGZSpXDbw+vFE
NJAsLfsTzihGWZ58einMFA==
-----END CERTIFICATE-----

Endgültige Überprüfung der Chef-Workstation

Wenn die Chef-Workstation ordnungsgemäß funktioniert, werden beim Ausführen der „knife client list“ alle Clients angezeigt, die mit dieser Workstation verbunden sind. Da wir es gerade installiert haben, sehen wir nur den Validator Ihrer Organisation, wie unten gezeigt.

# cd ~/chef-repo

# knife client list
example-validator

Wenn Sie diesen Befehl auf einer vorhandenen Chef-Workstation ausführen, an die bereits mehrere Server angeschlossen sind, sehen Sie eine Liste aller Server, die vom Chef verwaltet werden.

Im folgenden Beispiel sehen wir 5 Server, die mit dieser Chef-Workstation verbunden sind.

# knife client list
example-validator
node1
node2
node3
node4
node5

Linux
  1. So installieren Sie Elasticsearch und Kibana unter Linux

  2. So installieren und testen Sie Ansible unter Linux

  3. So installieren und verwenden Sie Flatpak unter Linux

  4. So installieren und verwenden Sie Traceroute unter Linux

  5. So installieren und richten Sie cPanel auf einem Linux-Server ein

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux

So installieren Sie Chef Workstation unter CentOS 8

So installieren und konfigurieren Sie Let’s Encrypt (Certbot) unter Linux

So installieren und konfigurieren Sie die Cockpit-Webkonsole auf einem Linux-System

So installieren und richten Sie LXC-Linux-Container unter CentOS / RHEL / Ubuntu ein