Implementieren von Rezepten für Chef 11.4-Stacks - 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.

Implementieren von Rezepten für Chef 11.4-Stacks

Wichtig

Das Tool AWS OpsWorks Stacks Der Dienst hat am 26. Mai 2024 das Ende seiner Nutzungsdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an AWS Support Team ein AWS Re:post oder durch AWS Premium-Support.

Wichtig

Verwenden Sie keine Namen der integrierten Rezeptbücher für benutzerdefinierte oder Community-Rezeptbücher. Bei benutzerdefinierten Rezeptbüchern mit demselben Namen wie integrierte Rezeptbücher kann ein Fehler auftreten. Eine vollständige Liste der integrierten Kochbücher, die mit den Stacks Chef 11.10, 11.4 und 0.9 verfügbar sind, finden Sie im Opsworks-Cookbooks-Repository unter. GitHub

Die primäre Einschränkung von Chef 11.4-Stacks besteht darin, dass Rezepte weder die Chef-Suchfunktion noch Data Bags verwenden können. Jedoch AWS OpsWorks Stacks installiert Stackkonfigurations- und Bereitstellungsattribute auf jeder Instance, die viele der Informationen enthalten, die Sie mit der Suche erhalten würden, einschließlich der folgenden:

  • Benutzerdefinierte Daten von der Konsole, wie z. B. Host- oder App-Namen.

  • Stack-Konfigurationsdaten, generiert von AWS OpsWorks Stacks-Dienst, z. B. die Ebenen, Apps und Instanzen des Stacks, sowie Details zu jeder Instanz, z. B. die IP-Adresse.

  • Benutzerdefinierte JSON Attribute, die vom Benutzer bereitgestellte Daten enthalten und fast den gleichen Zweck erfüllen können wie Datenbeutel.

AWS OpsWorks Stacks installiert auf jeder Instanz für jedes Lebenszyklusereignis eine aktuelle Version der Stack-Konfiguration und der Bereitstellungsattribute, bevor der Chef-Lauf des Events gestartet wird. Die Daten werden den Rezepten mit der Standardsyntax node[:attribute][:child_attribute][...] zur Verfügung gestellt. Die Stack-Konfigurations- und Bereitstellungsattribute enthalten z. B. den Stack-Namen node[:opsworks][:stack][:name].

Der folgende Auszug aus einem der integrierten Rezepte erhält den Stack-Namen und verwendet ihn zum Erstellen einer Konfigurationsdatei.

template '/etc/ganglia/gmetad.conf' do source 'gmetad.conf.erb' mode '0644' variables :stack_name => node[:opsworks][:stack][:name] notifies :restart, "service[gmetad]" end

Viele der Stack-Konfigurations- und Bereitstellungsattributwerte enthalten mehrere Attribute. Sie müssen diese Attribute schrittweise durchlaufen, um die benötigten Informationen zu erhalten. Das folgende Beispiel zeigt einen Auszug aus den Attributen für die Stack-Konfiguration und die Bereitstellung, die der Einfachheit halber als JSON Objekt dargestellt wurden. Es enthält ein Top-Level-Attribut, deploy, mit einem Attribut für jede App des Stacks, die mit dem Kurznamen der App bezeichnet wird.

{ ... "deploy": { "app1_shortname": { "document_root": "app1_root", "deploy_to": "deploy_directory", "application_type": "php", ... }, "app2_shortname": { "document_root": "app2_root", ... } }, ... }

Jedes App-Attribut enthält eine Gruppe von Attributen, die die Merkmale der Anwendung angeben. Das deploy_to-Attribut stellt z. B. das Bereitstellungsverzeichnis der App dar. Mit dem folgenden Auszug werden Benutzer, Gruppe und Pfad für das Bereitstellungsverzeichnis der einzelnen Apps festgelegt.

node[:deploy].each do |application, deploy| opsworks_deploy_dir do user deploy[:user] group deploy[:group] path deploy[:deploy_to] end ... end

Weitere Informationen zu den Stack-Konfigurations- und Bereitstellungsattributen finden Sie unter Anpassen AWS OpsWorks Stacks. Weitere Informationen zu den Bereitstellungsverzeichnissen finden Sie unter Bereitstellungsrezepte.

Chef 11.4-Stacks unterstützen keine Datenpakete, aber Sie können der Stackkonfiguration und den Bereitstellungsattributen beliebige Daten hinzufügen, indem Sie custom angeben. JSON Ihre Rezepte können dann mit der standardmäßigen Chef-Knotensyntax auf die Daten zugreifen. Weitere Informationen finden Sie unter Benutzerdefiniert verwenden JSON.

Wenn Sie die Funktionalität einer verschlüsselten Datentasche benötigen, besteht eine Möglichkeit darin, vertrauliche Attribute an einem sicheren Ort wie einem privaten Amazon S3 S3-Bucket zu speichern. Ihre Rezepte können dann den AWSRuby verwendenSDK, der auf allen installiert ist AWS OpsWorks Stacks-Instanzen — um die Daten aus dem Bucket herunterzuladen.

Anmerkung

Jeder AWS OpsWorks Die Stacks-Instanz hat ein Instanzprofil. Die zugehörige IAMRolle gibt an, auf welche AWS Ressourcen von Anwendungen zugegriffen werden kann, die auf der Instanz ausgeführt werden. Damit Ihre Rezepte auf einen Amazon S3 S3-Bucket zugreifen können, muss die Richtlinie der Rolle eine Aussage ähnlich der folgenden enthalten, die die Berechtigung zum Abrufen von Dateien aus einem bestimmten Bucket erteilt.

"Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",

Weitere Informationen zu Instance-Profilen finden Sie unter Berechtigungen für Apps angeben, die auf EC2 Instanzen ausgeführt werden.