AWS OpsWorks for Chef Automate, Teil 2 Chef Workstation unter Amazon Linux
Sobald ein Chef-Automate-Server funktionsfähig ist, kann man sich ans Einrichten einer Chef Workstation machen. Unter AWS installieren wir hierfür nun das Starter-Kit, ChefDK und einige Hilfswerkzeuge.
Anbieter zum Thema

AWS OpsWorks for Chef Automate haben wir im ersten Teil dieser Miniserie vollständig eingerichtet und bereitgestellt. Im nächsten Schritt schreiben wir die automatisch generierte und aus dem Ausgabestring extrahierte (momentan in einer Variablen zwischengespeicherte) Schlüsseldatei client.pem auf der Chef-Workstation in die Datei /etc/chef/client.pem:
sudo mkdir /etc/chef
echo $opw_privkey | sudo tee /etc/chef/client.pem
sudo chmod 644 /etc/chef/client.pem
Jetzt ist es an der Zeit, die neueste Version des Chef Development Kit, kurz ChefDK, herunterzuladen. Die Links zur jeweils neuesten und älteren Stable-Versionen finden sich auch im Download-Bereich von Chef.io.
wget https://packages.chef.io/files/stable/chefdk/3.5.13/el/7/chefdk-3.5.13-1.el7.x86_64.rpm
Das Installieren erfolgt dann auf unserer auf Amazon-Linux basierenden Chef-Workstation mittels …
sudo yum install -y chefdk-3.5.13-1.el7.x86_64.rpm
Um das ebenfalls aus der Ausgabe extrahierte Starter Kit zugänglich zu machen, verschieben wir die in der Variablen $opw_skit gespeicherte base64-codierte Datei mithilfe von Python in eine ZIP-Datei. Das geht so:
echo $opw_skit | python -m base64 -d > starterkit.zip
Anschließend entpacken wir die Datei:
unzip starterkit.zip
Die Ausgabe sollte etwa wie folgt aussehen:
inflating: myautomateserver3-woncukfty46sctqm/.chef/ca_certs/opsworks-cm-ca-2016-root.pem
inflating: myautomateserver3-woncukfty46sctqm/Berksfile
inflating: myautomateserver3-woncukfty46sctqm/README.md
inflating: myautomateserver3-woncukfty46sctqm/chefignore inflating: myautomateserver3-woncukfty46sctqm/cookbooks/README.md
inflating: myautomateserver3-woncukfty46sctqm/environments/README.md
inflating: myautomateserver3-woncukfty46sctqm/roles/README.md
inflating: myautomateserver3-woncukfty46sctqm/.chef/knife.rb
inflating: myautomateserver3-woncukfty46sctqm/.chef/private.pem
inflating: myautomateserver3-woncukfty46sctqm/userdata.sh
PEM-Schlüssel hochladen
Nun laden wir noch unseren privaten PEM-Schlüssel auf die Chef-Workstation hoch. Erst so ist sichergestellt, dass dieser auch per SSH eine Verbindung mit dem Chef-Automate-Server (oder unseren Knoten-Maschinen wie z. B. den Ziel-Webserver) aufnehmen kann.
Aber Achtung: In diesem Beispiel haben wir die auf EC2 basierende Chef-Workstation nur aus Gründen der einfachen Zugänglichkeit in einem öffentlichen Subnetz platziert, auch weil dieser damit die persönliche Betriebsumgebung des Kunden nachahmt. Das Platzieren von SSH-Schlüsseln auf einem gemeinsam genutzten Server sollte jedoch in Produktionsumgebungen unbedingt vermieden werden!
Unter Windows/Putty kann das Hochladen z. B. sofern installiert mit Hilfe von PuTTY-SCP (pscp) erfolgen. Das folgende Kommando ist etwas unübersichtlich und enthält an drei Stellen ein Key-Pair:
"c:\Program Files (x86)\PuTTY\pscp.exe" -i ./[KeyPairName].ppk ./[KeyPairName].pem ec2-user@[CommandHostPublicIp]:/home/ec2-user/.ssh/[KeyPairName].pem
Hierbei ist die erste genannte KeyPair-Datei (im ppk-Format) der Authentifizierungsmechanismus selbst. Das zweite Schlüsselpaar mit der Dateiendung .pem ist die KeyPair-Datei, die übertragen werden soll; der dritte KeyPair-Eintrag legt die Zieldatei fest. Optional kann man aber auch den Bitvise-SSH-Client von putty.org installieren, der einen grafischen SCP-Client mitbringt.
Somit sollte es jetzt wie im vorangestellten Bild möglich sein, sich im Browser auf den Chef-Automate-Server-Endpoint unter $opw_endpoint zu verbinden. Diesen haben wir ja zuvor in einer Variablen festgehalten.
In einem Browser-Tab sollte sich nun der Anmeldedialog für Chef Automate öffnen. Das admin-Passwort entnehmen wir ebenfalls aus der zugehörigen Variablen echo $opw_pwd:
Danach kann man sofern gewünscht die Chef-Automate-Console weiter konfigurieren, was aber für das weitere Vorgehen in diesem Workshop nicht erforderlich ist. Selbstverständlich taucht der Chef-Automate-Server wie im untersten Bild zu sehen auch im EC2-Dashboard auf. Im dritten Teil dieses Beitrages schauen wir uns an, wie das Bereitstellen von Cookbooks funktioniert und wie man mit Hilfe von Chef eines existenten Webserver bootstrappen kann.
(ID:45617438)