AWS OpsWorks for Chef Automate, Teil 2

Chef Workstation unter Amazon Linux

| Autor / Redakteur: Thomas Drilling / Stephan Augsten

In diesem Teil unserer Miniserie richten wir die Chef Workstation unter AWS ein.
In diesem Teil unserer Miniserie richten wir die Chef Workstation unter AWS ein. (Bild: Drilling / Chef)

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.

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:

Unzipping des Chef Starter Kit.
Unzipping des Chef Starter Kit. (Bild: Drilling / Chef)

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.

Verbindungsversuch mit dem Endpoint.
Verbindungsversuch mit dem Endpoint. (Bild: Drilling / Chef)

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.

Extraktion des zugehörigen Passworts.
Extraktion des zugehörigen Passworts. (Bild: Drilling / Chef)

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:

Einrichtungsdialog der Chef Automate Console.
Einrichtungsdialog der Chef Automate Console. (Bild: Drilling / Chef)

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.

Blick ins Dashboard von Amazon EC2.
Blick ins Dashboard von Amazon EC2. (Bild: Drilling / Amazon)

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45617438 / Cloud-Umgebungen & PaaS)