Da ich mich hin und wieder mit automatisierter Installtion und Konfiguration beschäftige, habe ich mir eine lokale Chef-Testumgebung eingerichtet, die ich auf meinem MacBook ausführe. Es besteht aus dem Chef-Server, den zu verwaltenden Knoten und den Chef-Client-Tools.

Vorraussetzungen

Ich persönlich verwende Homebrew https://brew.sh, um Virtual Box, Virtual Box Extension Pack und Vagrant zu installieren und auf dem neuesten Stand zu halten. Wenn Sie es noch nicht verwenden, probieren Sie es aus. Ich installiere die meisten meiner Softwarepakete damit.

Installationsanweisungen

# Homebrew installieren
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# Virtual Box + Extension Pack installieren
brew cask install virtualbox
brew cask install virtualbox-extension-pack

# Vagrant installieren
brew cask install vagrant

# Vagrant Hosts Updater Plugin installieren
vagrant plugin install vagrant-hostsupdater

# Um dem Plugin zu erlauben, die lokale /etc/hosts Datei automatisch zu aktualisieren, wenn eine 
# VM-Maschine hoch- oder heruntergefahren wird muss eine sudoers Konfiguration erstellt werden 
# (damit man nicht ständig nach dem Passwort gefragt wird)

# Dazu wird eine Datei unter dem sudoers Include Verzeichnis angelegt
sudo visudo -f /etc/sudoers.d/vagrant_hostsupdater

# mit folgendem Inhalt:

# Allow passwordless startup of Vagrant with vagrant-hostsupdater.
Cmnd_Alias VAGRANT_HOSTS_ADD = /bin/sh -c echo "*" >> /etc/hosts
Cmnd_Alias VAGRANT_HOSTS_REMOVE = /usr/bin/sed -i -e /*/ d /etc/hosts
%admin ALL=(root) NOPASSWD: VAGRANT_HOSTS_ADD, VAGRANT_HOSTS_REMOVE

Installieren Sie nun die zuvor heruntergeladenen Chef-Workstation Tools.

Chef Server und Nodes

Link zum Github Repository: https://github.com/svenpaass/vagrant-chef-lab

Man klont das Repository und wechselt in das Chef-Server Verzeichnis. Dann erzeugt und startet man die VM mittels Vagrant.

git clone https://github.com/svenpaass/vagrant-chef-lab
cd vagrant-chef-lab/chef-server
vagrant up

Dadurch wird die Vagrant-Box heruntergeladen, das Chef-Server-Paket installiert und in der lokalen Hosts-Datei der IP 10.0.15.10 der Name "chef-server" zugewiesen.

Anschließend können Sie unter https://chef-server eine interne Organisation zum Verwalten der Testknoten erstellen.

  • Benutzer: chefadmin
  • Passwort: chefadmin

Jetzt können Sie das Starter-Kit vom Chef-Server herunterladen, extrahieren und in das erstellte Verzeichnis chef-repo wechseln.

Zum testen der Installation, wird eine Verbindung zum lokalen Chef-Server hergestellt:

# SSL Zertifikat runterladen und in dem Trust Store des Clients speicher, 
# da es sich um ein selbst-signiertes Zertifikat handelt.
knife ssl fetch

# Verbindung prüfen
knife ssl check

# Upload des Beispiel Cookbooks 
knife cookbook upload starter

# Löschen des Beispiel Cookbooks
knife cookbook delete starter

Beispiel Client Maschinen

Das Repository enthält 3 Konfigurationen mit minimalen bento-Images und der vorbereiteten /etc/hosts Datei, die den chef-server auflösen kann.

Die IPs und Namen sind die folgenden:

  • node-ubuntu - 10.0.15.100
  • node-centos - 10.0.15.101
  • node-debian - 10.0.15.102

Nächster Beitrag Vorheriger Beitrag