Automatisches Hinzufügen von Knoten AWS OpsWorks for Chef Automate - 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.

Automatisches Hinzufügen von Knoten AWS OpsWorks for Chef Automate

Wichtig

AWS OpsWorks for Chef Automate hat am 5. Mai 2024 das Ende seiner Lebensdauer 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.

In diesem Thema wird beschrieben, wie Sie Ihrem Chef-Server automatisch Amazon Elastic Compute Cloud (Amazon EC2) -Knoten hinzufügen. Der Code in diesem Starter Kit zeigt das automatische Hinzufügen von Knoten mit der unbeaufsichtigten Methode. Die empfohlene Methode für eine unbeaufsichtigte (oder automatische) Zuordnung neuer Knoten besteht in der Konfiguration des Chef Client Cookbook. Sie können das Skript userdata im Starter Kit verwenden und entweder den run_list-Abschnitt des Skripts userdata oder Ihr Policyfile.rb mit den Rezeptbüchern ändern, die Sie auf Ihrem Knoten anwenden möchten. Bevor Sie den chef-client-Agenten ausführen, laden Sie das Chef Client-Rezeptbuch auf Ihren Chef-Server hoch und installieren den chef-client-Agenten im Service-Modus, beispielsweise mit einer HTTPD-Rolle, wie im folgenden Beispielbefehl veranschaulicht.

chef-client -r "chef-client,role[httpd]"

Für die Kommunikation mit dem Chef-Server benötigt die chef-client-Agentensoftware Zugriff auf den öffentlichen Schlüssel des Client-Knotens. Sie können in Amazon EC2 ein öffentlich-privates key pair generieren und dann den öffentlichen Schlüssel mit dem Knotennamen an den AWS OpsWorks associate-node API-Aufruf übergeben. Das Skript in diesem Starter Kit fasst den Namen der Organisation, den Servernamen und den Server-Endpunkt für Sie zusammen. So wird sichergestellt, dass der Knoten dem Chef-Server zugeordnet wird und die chef-client-Agentensoftware, die auf dem Knoten ausgeführt wird, bei einer Übereinstimmung mit dem privaten Schlüssel mit dem Server kommunizieren kann.

Die unterstützte Mindestversion von chef-client auf mit einem AWS OpsWorks for Chef Automate -Server verknüpften Knoten ist 13x. Wir empfehlen, die aktuellste, stabilste Version zu verwenden. chef-client

Informationen zum Trennen der Zuordnung eines Knotens finden Sie Einen Knoten von einem AWS OpsWorks for Chef Automate Server trennen in diesem Handbuch und disassociate-nodein der AWS OpsWorks for Chef Automate API-Dokumentation.

Unterstützte Betriebssysteme

Eine aktuelle Liste von unterstützten Betriebssystemen für Knoten finden Sie auf der Chef-Website.

Schritt 1: Erstellen Sie eine IAM-Rolle, die Sie als Ihr Instanzprofil verwenden möchten

Erstellen Sie eine AWS Identity and Access Management (IAM-) Rolle, die Sie als Ihr EC2-Instance-Profil verwenden möchten, und fügen Sie der IAM-Rolle die folgende Richtlinie hinzu. Diese Richtlinie ermöglicht der AWS OpsWorks for Chef Automate -API (opsworks-cm) die Kommunikation mit der EC2-Instance während der Knotenregistrierung. Weitere Informationen zu Instance-Profilen finden Sie unter Using Instance Profiles in der Amazon EC2 EC2-Dokumentation. Informationen zum Erstellen einer IAM-Rolle finden Sie unter Creating an IAM Role in the Console in der Amazon EC2 EC2-Dokumentation.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", ], "Resource": "*", "Effect": "Allow" } ] }

AWS OpsWorks stellt eine AWS CloudFormation Vorlage bereit, die Sie verwenden können, um die IAM-Rolle mit der vorherigen Richtlinienerklärung zu erstellen. Der folgende AWS CLI Befehl erstellt mithilfe dieser Vorlage die Instanzprofilrolle für Sie. Sie können den --region Parameter weglassen, wenn Sie den neuen AWS CloudFormation Stack in Ihrer Standardregion erstellen möchten.

aws cloudformation --region region ID create-stack --stack-name myChefAutomateinstanceprofile --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-nodes-roles.yaml --capabilities CAPABILITY_IAM

Schritt 2: Installieren des Chef Client-Rezeptbuchs

Sofern dies noch nicht geschehen ist, führen Sie die Schritte in (Alternativ) Verwenden von Berkshelf zum Abrufen von Rezeptbüchern aus einer externen Quelle aus, um sicherzustellen, dass Ihr Berksfile oder Ihre Policyfile.rb-Datei auf das Chef Client-Rezeptbuch verweist und dieses installiert.

Schritt 3: Erstellen von Instances mit einem unbeaufsichtigten Skript für die Zuordnung

  1. Um EC2-Instances zu erstellen, können Sie das userdata Skript aus dem Starter Kit in den userdata Abschnitt mit EC2-Instance-Anweisungen, Amazon EC2 Auto Scaling Scaling-Gruppenstartkonfigurationen oder in eine Vorlage kopieren. AWS CloudFormation Weitere Informationen zum Hinzufügen von Skripten zu Benutzerdaten finden Sie unter Running Commands on Your Linux Instance at Launch in der Amazon EC2 EC2-Dokumentation.

    Dieses Skript führt den opsworks-cm-API-Befehl associate-node aus, um dem Chef-Server einen neuen Knoten zuzuordnen.

    Standardmäßig ist der Name des neu registrierten Knotens die Instance-ID. Sie können den Namen aber ändern, indem Sie den Wert der NODE_NAME-Variable im Skript userdata ändern. Da das Ändern des Organisationsnamens in der Benutzeroberfläche der Chef-Konsole derzeit nicht möglich ist, belassen Sie die Festlegung von CHEF_AUTOMATE_ORGANIZATION auf default.

  2. Befolgen Sie die Anleitung in Starten einer Instance in der EC2-Dokumentation mit Änderungen. Wählen Sie im EC2-Instance-Startassistenten ein Amazon Linux AMI.

  3. Wählen Sie auf der Seite Configure Instance Details (Instance-Details konfigurieren) die Rolle, die Sie in Schritt 1: Erstellen Sie eine IAM-Rolle, die Sie als Ihr Instanzprofil verwenden möchten erstellt haben, als Ihre IAM-Rolle.

  4. Laden Sie in den Bereich Advanced Details (Erweiterte Details) das userdata.sh-Skript hoch, das Sie zuvor in diesem Verfahren erstellt haben.

  5. Auf der Seite Add Storage (Speicher hinzufügen) sind keine Änderungen erforderlich. Gehen Sie weiter zu Add Tags (Tags hinzufügen).

  6. Wählen Sie auf der Seite Configure Security Group (Sicherheitsgruppe konfigurieren) Add Rule (Regel hinzufügen) und dann den Typ HTTP, um in diesem Beispiel die Ports 443 und 80 für den Apache-Webserver zu öffnen.

  7. Wählen Sie Review and Launch (Überprüfen und starten) und dann Launch (Starten) aus. Wenn Ihr neuer Knoten startet, werden die Konfigurationen angewendet, die von den im RUN_LIST-Parameter angegebenen Rezepten vorgegeben sind.

  8. Optional: Wenn Sie Ihrer Ausführungsliste das nginx-Rezeptbuch hinzugefügt haben und die mit dem öffentlichen DNS Ihres neuen Knotens verknüpfte Webseite öffnen, sollten Sie eine Website sehen, die von Ihrem nginx-Webserver gehostet wird.

Andere Methoden zur Automatisierung wiederholter Ausführungen von chef-client

Es ist zwar schwieriger zu erreichen und wird auch nicht empfohlen, aber Sie können das Skript in diesem Thema ausschließlich als Teil der Benutzerdaten einer eigenständigen Instanz ausführen, eine AWS CloudFormation Vorlage verwenden, um es zu neuen Instance-Benutzerdaten hinzuzufügen, einen cron Job so konfigurieren, dass das Skript regelmäßig ausgeführt wird, oder chef-client innerhalb eines Service ausgeführt werden. Wir empfehlen allerdings die Methode des Chef Client-Rezeptbuchs, da einige Nachteile mit anderen Automatisierungstechniken bestehen

Eine vollständige Liste der Parameter, die für chef-client bereitgestellt werden können, finden Sie in der Dokumentation zu Chef.

Die folgenden AWS Blogbeiträge bieten weitere Informationen zur automatischen Zuordnung von Knoten zu Ihrem Chef Automate-Server, mithilfe von Auto Scaling Scaling-Gruppen oder innerhalb mehrerer Konten.