Konfigurieren des Chef-Servers mit dem Starter Kit - AWS OpsWorks

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren des Chef-Servers mit dem Starter Kit

Wichtig

AWS OpsWorks for Chef Automate hat am 5. Mai 2024 das Ende seiner Nutzungsdauer erreicht und wurde sowohl für Neu- als auch für Bestandskunden deaktiviert. Wir empfehlen bestehenden Kunden, zu Chef SaaS oder einer alternativen Lösung zu migrieren. Wenn du Fragen hast, kannst du dich auf AWS re:POST oder über den AWS Premium-Support an das AWS Support Team wenden.

Öffnen Sie während der Erstellung des Chef-Servers in der AWS OpsWorks for Chef Automate -Konsole die Seite Eigenschaften. Wenn Sie zum ersten Mal mit einem neuen Chef-Server arbeiten, werden Sie von der Eigenschaftenseite aufgefordert, die erforderlichen Elemente herunterzuladen. Laden Sie diese Elemente herunter, bevor Ihr Chef-Server online ist. Die Schaltflächen zum Herunterladen sind nicht verfügbar, wenn ein neuer Server online ist.

AWS OpsWorks for Chef Automate neue Seite mit Servereigenschaften
  • Anmeldeinformationen für den Chef-Server. Sie verwenden diese Anmeldeinformationen, um sich beim Chef Automate-Dashboard anzumelden, wo Sie mit den Premium-Funktionen von Chef Automate wie Workflow- und Compliance-Scans arbeiten. AWS OpsWorks speichert diese Anmeldeinformationen nicht; dies ist das letzte Mal, dass sie zum Anzeigen und Herunterladen verfügbar sind. Falls erforderlich, können Sie das Passwort ändern, nachdem Sie sich mit diesen Anmeldeinformationen angemeldet haben.

  • Starter Kit. Das Starter Kit enthält eine Readme-Datei mit Beispielen, die Konfigurationsdatei knife.rb und einen privaten Schlüssel für den primären oder pivotalen Benutzer. Jedes Mal, wenn Sie das Starter Kit herunterladen, wird ein neues Schlüsselpaar erstellt und der alte Schlüssel zurückgesetzt.

Zusätzlich zu den Anmeldeinformationen, die nur mit dem neuen Server funktionieren, enthält die Starter Kit-ZIP-Datei ein einfaches Beispiel für ein Chef-Repository, das mit jedem AWS OpsWorks for Chef Automate Server funktioniert. Im Chef-Repository werden Rezeptbücher, Rollen, Konfigurationsdateien und andere Artefakten zur Verwaltung Ihrer Knoten mit Chef gespeichert. Wir empfehlen, dass Sie dieses Repository in einem Versionskontrollsystem wie z. B. Git speichern und als Quellcode behandeln. Weitere Informationen und Beispiele, die verdeutlichen, wie ein in Git nachverfolgtes Chef-Repository erstellt wird, finden Sie in der Chef-Dokumentation unter About the chef-repo.

Voraussetzungen

  1. Laden Sie während der Servererstellung die Anmeldeinformationen für den Chef-Server herunter und speichern Sie diese an einem sicheren, aber leicht zugreifbaren Ort.

  2. Laden Sie das Starter Kit herunter und extrahieren Sie die .zip-Datei des Starter Kits in Ihr Workspace-Verzeichnis. Teilen Sie nicht den privaten Schlüssel des Starter Kits. Wenn andere Benutzer den Chef-Server verwalten, fügen Sie diese zu einem späteren Zeitpunkt als Administratoren im Chef Automate-Dashboard hinzu.

  3. Laden Sie Chef Workstation (früher bekannt als Chef Development Kit oder Chef DK) herunter und installieren Sie es auf dem Computer, den Sie zur Verwaltung Ihres Chef-Servers und Ihrer Chef-Knoten verwenden werden. Das knifeHilfsprogramm ist Teil von Chef Workstation. Anweisungen finden Sie unter Chef Workstation installieren auf der Chef-Website.

Erkunden des Inhalts vom Starter Kit

Das Starter Kit umfasst die folgenden Inhalte.

  • cookbooks/ – Ein Verzeichnis für Rezeptbücher, die Sie erstellen. Der cookbooks/ Ordner enthält das opsworks-webserver Kochbuch, ein Wrapper-Kochbuch, das vom Kochbuch auf der Chef nginx Supermarkt-Website abhängt. Policyfile.rbverwendet standardmäßig Chef Supermarket als sekundäre Quelle, wenn Kochbuchabhängigkeiten im Verzeichnis nicht verfügbar sind. cookbooks/

  • Policyfile.rb – Eine auf Ruby basierte Richtliniendatei, mit der die Rezeptbücher, Abhängigkeiten und Attribute definiert werden, die als Richtlinie für Ihre Knoten fungieren.

  • userdata.sh und userdata.ps1 – Sie können mit Benutzerdatendateien Knoten automatisch verknüpften, nachdem Sie Ihrem Chef Automate-Server gestartet haben. userdata.sh dient dem Bootstrapping Linux-basierter Knoten und userdata.ps1 wird für Windows-basierte Knoten verwendet.

  • Berksfile – Sie können diese Datei verwenden, wenn Sie Berkshelf verwenden möchten und Rezeptbücher sowie deren Abhängigkeiten mit den berks-Befehlen hochladen. Im Rahmen dieser Anleitung verwenden wir Policyfile.rb und Chef-Befehle zum Hochladen von Rezeptbüchern, Abhängigkeiten und Attributen.

  • README.md, eine Markdown-basierte Datei, mit der die Verwendung des Starter Kits für die erstmalige Einrichtung Ihrer Chef Automate-Server beschrieben wird.

  • .chef ist ein ausgeblendetes Verzeichnis mit einer Knife-Konfigurationsdatei (knife.rb) und einer geheimen Authentifizierungsschlüsseldatei (.pem).

    • .chef/knife.rb – Eine Knife-Konfigurationsdatei (knife.rb). Die knife.rbDatei ist so konfiguriert, dass die knifeTooloperationen von Chef auf dem AWS OpsWorks for Chef Automate Server ausgeführt werden.

    • .chef/ca_certs/opsworks-cm-ca-2020-root.pem – Ein von einer Zertifizierungsstelle (Certification Authority, CA) signierter privater SSL-Schlüssel, der von AWS OpsWorks bereitgestellt wird. Mit diesem Schlüssel kann sich der Server gegenüber dem Chef-Infra-Agenten auf den von Ihrem Server verwalteten Knoten identifizieren.

Einrichten des Chef-Repositorys

Ein Chef-Repository enthält mehrere Verzeichnisse. Jedes Verzeichnis im Starter Kit enthält eine Readme-Datei, die den Zweck des Verzeichnisses beschreibt und wie es für die Verwaltung Ihrer Systeme mit Chef verwendet wird. Es gibt zwei Möglichkeiten für die Installation von Rezeptbüchern auf Ihrem Chef-Server: mit knife-Befehlen oder über einen Chef-Befehl zum Hochladen einer Richtliniendatei (Policyfile.rb) auf Ihren Server, der bestimmte Rezeptbücher herunterlädt und installiert. In dieser Anleitung werden Chef-Befehle und Policyfile.rb zum Installieren von Rezeptbüchern auf Ihrem Server verwendet.

  1. Erstellen Sie auf Ihrem lokalen Computer ein Verzeichnis zum Speichern von Rezeptbüchern, z. B. chef-repo. Nachdem Sie Kochbücher, Rollen und andere Dateien zu diesem Repository hinzugefügt haben, empfehlen wir, diese hochzuladen oder in einem sicheren, versionierten System wie CodeCommit Git oder Amazon S3 zu speichern.

  2. Erstellen Sie im chef-repo-Verzeichnis die folgenden Verzeichnisse:

    • cookbooks/- Speichert Kochbücher.

    • roles/ – Speichert Rollen im .rb- oder .json-Format.

    • environments/ – Speichert Umgebungen im .rb- oder .json-Format.

Verwenden von Policyfile.rb zum Abrufen von Rezeptbüchern aus einer externen Quelle

Bearbeiten Sie in diesem Abschnitt Policyfile.rb, um Rezeptbücher anzugeben, laden Sie die Datei mit einem Chef-Befehl auf Ihrem Server hoch und installieren Sie Rezeptbücher.

  1. Zeigen Sie Policyfile.rb in Ihrem Starter Kit an. Standardmäßig enthält Policyfile.rb das opsworks-webserver-Wrapper-Rezeptbuch. Das hängt vom nginx-Rezeptbuch ab, das Sie auf Chef Supermarket-Website finden. Das nginx-Rezeptbuch installiert und konfiguriert einen Webserver auf verwalteten Knoten. Das erforderliche chef-client-Rezeptbuch, das den Chef Infra-Client-Agenten auf verwalteten Knoten installiert, wird ebenfalls angegeben.

    Darüber hinaus weist Policyfile.rb auf das optionale Chef Audit-Rezeptbuch, mit dem Sie Compliance-Scans auf Knoten einrichten können. Weitere Informationen zum Einrichten von Compliance-Scans und zum Abrufen von Compliance-Ergebnissen für verwaltete Knoten finden Sie unter Konformitätsscans in AWS OpsWorks for Chef Automate. Wenn Sie Compliance-Scans und Auditing nicht sofort konfigurieren möchten, löschen Sie 'audit' aus dem run_list-Abschnitt und geben Sie keine audit-Rezeptbuchattribute am Ende der Datei an.

    # Policyfile.rb - Describe how you want Chef to build your system. # # For more information about the Policyfile feature, visit # https://docs.chef.io/policyfile.html # A name that describes what the system you're building with Chef does. name 'opsworks-demo-webserver' # The cookbooks directory is the preferred source for external cookbooks default_source :chef_repo, "cookbooks/" do |s| s.preferred_for "nginx", "windows", "chef-client", "yum-epel", "seven_zip", "build-essential", "mingw", "ohai", "audit", "logrotate", "cron" end # Alternative source default_source :supermarket # run_list: chef-client runs these recipes in the order specified. run_list 'chef-client', 'opsworks-webserver', 'audit' # add 'ssh-hardening' to your runlist to fix compliance issues detected by the ssh-baseline profile # Specify a custom source for a single cookbook: cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver' # Policyfile defined attributes # Define audit cookbook attributes default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate" default["opsworks-demo"]["audit"]["profiles"] = [ { "name": "DevSec SSH Baseline", "compliance": "admin/ssh-baseline" } ]

    Es folgt ein Beispiel für Policyfile.rb ohne das audit-Rezeptbuch und Attribute, wenn Sie erst einmal nur den nginx-Webserver konfigurieren möchten.

    # Policyfile.rb - Describe how you want Chef to build your system. # # For more information on the Policyfile feature, visit # https://docs.chef.io/policyfile.html # A name that describes what the system you're building with Chef does. name 'opsworks-demo-webserver' # Where to find external cookbooks: default_source :supermarket # run_list: chef-client will run these recipes in the order specified. run_list 'chef-client', 'opsworks-webserver' # Specify a custom source for a single cookbook: cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver'

    Wenn Sie Änderungen an Policyfile.rb vornehmen, stellen Sie sicher, die Datei zu speichern.

  2. Laden Sie die in Policyfile.rb definierten Rezeptbücher herunter und installieren Sie sie.

    chef install

    Alle Rezeptbücher sind in der metadata.rb-Datei des Rezeptbuchs versioniert. Immer wenn Sie ein Rezeptbuch ändern, müssen Sie die Version des Rezeptbuchs ändern, die sich in seiner metadata.rb befindet.

  3. Wenn Sie Compliance-Scans konfigurieren möchten und die audit-Rezeptbuchinformationen in die Richtliniendatei belassen haben, leiten Sie die opsworks-demo-Richtlinie an Ihren Server weiter.

    chef push opsworks-demo
  4. Wenn Sie Schritt 3 abgeschlossen haben, überprüfen Sie die Installation Ihrer Richtlinie. Führen Sie den folgenden Befehl aus.

    chef show-policy

    Die Ergebnisse sollten etwa wie folgt aussehen:

    opsworks-demo-webserver ======================= * opsworks-demo: ec0fe46314
  5. Sie können Ihrem Chef Automate-Server nun Knoten hinzufügen oder Bootstrapping dafür durchführen. Sie können die Zuordnung von Knoten automatisieren, indem Sie die Schritte in Automatisches Hinzufügen von Knoten AWS OpsWorks for Chef Automate ausführen, oder Knoten einzeln hinzufügen, indem Sie die Schritte in Fügen Sie Knoten einzeln hinzu ausführen.

(Alternativ) Verwenden von Berkshelf zum Abrufen von Rezeptbüchern aus einer externen Quelle

Berkshelf ist ein Tool für die Verwaltung von Rezeptbüchern und deren Abhängigkeiten. Wenn Sie die Verwendung von Berkshelf anstelle von Policyfile.rb vorziehen, um Rezeptbücher im lokalen Speicher zu installieren, verwenden Sie das Verfahren in diesem Abschnitt anstelle der Verfahrens im vorherigen Abschnitt. Sie können angeben, welche Rezeptbücher und Versionen Sie mit Ihren Chef-Server verwenden möchten, und sie hochladen. Das Starter Kit enthält eine Datei namens Berksfile, mit dem Sie Ihre Rezeptbücher aufführen können.

  1. Um zu beginnen, fügen Sie dem enthaltenen Berksfile das chef-client-Rezeptbuch hinzu. Das chef-client-Rezeptbuch konfiguriert die -Agent-Software des Chef Infra-Clients auf jedem Knoten, den Sie mit Ihrem Chef Automate-Server verbinden. Weitere Informationen zu diesem Rezeptbuch finden Sie unter Chef Client Cookbook im Chef Supermarket.

  2. Hängen Sie Ihrem Berksfile mit einem Texteditor ein anderes Rezeptbuch an, mit dem eine Web-Server-Anwendung installiert wird, z. B. das apache2-Rezeptbuch, das den Apache-Webserver installiert. Ihr Berksfile sollte etwa folgendermaßen aussehen.

    source 'https://supermarket.chef.io' cookbook 'chef-client' cookbook 'apache2'
  3. Laden Sie die Rezeptbücher herunter und installieren Sie sie auf Ihrem lokalen Computer.

    berks install
  4. Laden Sie das Rezeptbuch auf den Chef-Server hoch.

    Führen Sie unter Linux Folgendes aus.

    SSL_CERT_FILE='.chef/ca_certs/opsworks-cm-ca-2020-root.pem' berks upload

    Führen Sie unter Windows den folgenden Chef Workstation-Befehl in einer PowerShell Sitzung aus. Bevor Sie den Befehl ausführen, stellen Sie sicher, dass die Ausführungsrichtlinie PowerShell auf eingestellt istRemoteSigned. Fügen Sie hinzuchef shell-init, um die Befehle des Chef Workstation-Dienstprogramms für verfügbar zu machen PowerShell.

    $env:SSL_CERT_FILE="ca_certs\opsworks-cm-ca-2020-root.pem" chef shell-init berks upload Remove-Item Env:\SSL_CERT_FILE
  5. Überprüfen Sie die Installation des Rezeptbuchs, indem Sie eine Liste der Rezeptbücher anzeigen, die gegenwärtig auf dem Chef Automate-Server verfügbar sind. Sie erreichen dies mit dem knife-Befehl-

    Sie sind bereit, Knoten hinzuzufügen, die mit dem AWS OpsWorks for Chef Automate Server verwaltet werden sollen.

    knife cookbook list

(Optional) Konfigurieren von knife zur Verwendung mit einer benutzerdefinierten Domäne

Wenn Ihr Chef Automate-Server eine benutzerdefinierte Domäne verwendet, müssen Sie möglicherweise das PEM-Zertifikat der Stammzertifizierungsstelle, die die Zertifikatkette Ihres Servers signiert hat, oder das PEM-Zertifikat des Servers hinzufügen, wenn das Zertifikat selbstsigniert ist. ca_certs ist ein Unterverzeichnis in chef/, das Zertifizierungsstellen (CAs) enthält, denen das Chef-Dienstprogramm knife vertraut.

Sie können diesen Abschnitt überspringen, wenn Sie keine benutzerdefinierte Domäne verwenden oder wenn Ihr benutzerdefiniertes Zertifikat von einer Stammzertifizierungsstelle signiert ist, der Ihr Betriebssystem vertraut. Andernfalls konfigurieren Sie knife wie in den folgenden Schritten beschrieben, sodass dem SSL-Zertifikat Ihres Chef Automate-Servers vertraut wird.

  1. Führen Sie den folgenden Befehl aus.

    knife ssl check

    Wenn die Ergebnisse den folgenden ähneln, überspringen Sie den Rest dieses Verfahrens, und fahren Sie mit Hinzufügen von Knoten, die vom Chef-Server verwaltet werden fort.

    Connecting to host my-chef-automate-server.my-corp.com:443 Successfully verified certificates from 'my-chef-automate-server.my-corp.com'

    Wenn Sie eine Fehlermeldung ähnlich der folgenden erhalten, fahren Sie mit dem nächsten Schritt fort.

    Connecting to host my-chef-automate-server.my-corp.com:443 ERROR: The SSL certificate of my-chef-automate-server.my-corp.com could not be verified. ...
  2. Führen Sie knife ssl fetch aus, um den Zertifikaten Ihres AWS OpsWorks for Chef Automate -Servers zu vertrauen. Alternativ können Sie das PEM-formatierte Stammzertifikat des Servers manuell in das Verzeichnis kopieren, das dem Wert trusted_certs_dir in der Ausgabe von knife ssl check entspricht. Standardmäßig befindet sich dieses Verzeichnis in .chef/ca_certs/ im Starter Kit. Die Ausgabe sollte in etwa wie folgt aussehen:

    WARNING: Certificates from my-chef-automate-server.my-corp.com will be fetched and placed in your trusted_cert directory (/Users/username/starterkit/.chef/../.chef/ca_certs). Knife has no means to verify these are the correct certificates. You should verify the authenticity of these certificates after downloading. Adding certificate for my-chef-automate-server in /Users/users/starterkit/.chef/../.chef/ca_certs/servv-aqtswxu20swzkjgz.crt Adding certificate for MyCorp_Root_CA in /Users/users/starterkit/.chef/../.chef/ca_certs/MyCorp_Root_CA.crt
  3. Führen Sie knife ssl check erneut aus. Die Ausgabe sollte in etwa wie folgt aussehen:

    Connecting to host my-chef-automate-server.my-corp.com:443 Successfully verified certificates from 'my-chef-automate-server.my-corp.com'

    Sie können knife mit Ihrem Chef Automate-Server verwenden.