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.
Rezepte
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 den AWS Support Team ein AWS Re:post oder
Rezepte sind Ruby-Anwendungen zur Konfiguration des Systems. Sie installieren Pakete, erstellen Konfigurationsdateien aus Vorlagen, führen Shell-Befehle aus, erstellen Dateien und Verzeichnisse usw. In der Regel haben Sie AWS OpsWorks Stacks führen Rezepte automatisch aus, wenn ein Lebenszyklusereignis auf der Instance eintritt. Sie können sie aber auch jederzeit explizit ausführen, indem Sie den Stack-Befehl Execute Recipes verwenden. Weitere Informationen finden Sie unter About Recipes
Ein Rezept besteht in der Regel hauptsächlich aus einer Reihe von Ressourcen, die jeweils für einen gewünschten Zustand eines Aspekts des Systems stehen. Jede Ressource enthält eine Reihe von Attributen, über die der gewünschte Zustand definiert und festgelegt wird, welche Aktionen dafür notwendig sind. Chef ordnet die Ressourcen einem geeigneten Anbieter zu, der die Aktion ausführt. Weitere Informationen finden Sie unter Resources and Providers Reference
Mit package
-Ressourcen können Sie Softwarepakete auf Linux-Instances verwalten. Im folgenden Beispiel wird das Apache-Paket installiert.
... package 'apache2' do case node[:platform] when 'centos','redhat','fedora','amazon' package_name 'httpd' when 'debian','ubuntu' package_name 'apache2' end action :install end ...
Chef verwendet den korrekten Paketanbieter für die jeweilige Plattform. Ressourcenattributen wird oft nur ein Wert zugewiesen, Sie können Werte aber mithilfe logischer Ruby-Operatoren auch anhand bestimmter Bedingungen zuweisen. Im Beispiel wird der Operator case
verwenden, der anhand von node[:platform]
das Betriebssystem der Instance bestimmt und dem Attribut package_name
den korrekten Wert zuweist. Sie können Attribute mithilfe der Standard-Chef-Knotensyntax in ein Rezept einfügen und Chef ersetzt diese durch die zugehörigen Werte. Sie können beliebige Attribute im Knotenobjekt verwenden und sind nicht auf die Attribute Ihres Rezeptbuchs beschränkt.
Nachdem der korrekte Paketname ermittelt wurde, endet das Codesegment mit einer install
-Aktion, um das Paket zu installieren. Andere mögliche Aktionen dieser Ressource sind upgrade
und remove
. Weitere Informationen finden Sie unter package
Oft kann es hilfreich sein, komplexe Installations- und Konfigurationsaufgaben aufzuteilen und die Unteraufgaben als eigene Rezepte zu implementieren. Mithilfe eines Hauptrezepts können Sie dann die einzelnen Unterrezepte zum richtigen Zeitpunkt ausführen. Das folgende Beispiel enthält die Codezeile nach dem vorherigen Beispiel:
include_recipe 'apache2::service'
Damit ein Rezept ein untergeordnetes Rezept ausführen kann, verwenden Sie das Schlüsselwort include_recipe
gefolgt vom Rezeptnamen. Rezepte werden anhand der Standard-Chef-
-Syntax identifiziert, wobei bei CookbookName
::RecipeName
die Endung RecipeName
.rb
weggelassen wird.
Anmerkung
Mit einer include_recipe
-Anweisung führen Sie das Rezept an einer bestimmten Stelle im Hauptrezept aus. Tatsächlich ersetzt Chef jedoch jede include_recipe
-Anweisung durch den Code des jeweiligen Rezepts, bevor das Hauptrezept ausgeführt wird.
Eine directory
-Ressource steht für ein Verzeichnis, beispielsweise das Installationsverzeichnis für Paketdateien. Mit der folgenden default.rb
-Ressource wird ein Linux-Protokollverzeichnis erstellt.
directory node[:apache][:log_dir] do mode 0755 action :create end
Das Protokollverzeichnis ist in einer Attributdatei des Rezeptbuchs definiert. Die Ressource legt den Verzeichnismodus auf 0755 fest und erstellt es mit der Aktion create
. Weitere Informationen finden Sie unter directory
Die Ressource execute
stellt Befehle wie Shell-Befehle oder Skripte dar. Im folgenden Beispiel werden module.load-Dateien erstellt.
execute 'generate-module-list' do if node[:kernel][:machine] == 'x86_64' libdir = 'lib64' else libdir = 'lib' end command "/usr/local/bin/apache2_module_conf_generate.pl /usr/#{libdir}/httpd/modules /etc/httpd/mods-available" action :run end
Die Ressource bestimmt zuerst den CPU Typ. [:kernel][:machine]
ist ein weiteres automatisches Attribut, das Chef generiert, um verschiedene Systemeigenschaften darzustellen, in diesem Fall der CPU Typ. Danach wird der Befehl, ein Perl-Skript, festgelegt, das mit der Aktion run
ausgeführt wird, um die module.load-Dateien zu erstellen. Weitere Informationen finden Sie unter execute
Eine template
Ressource stellt eine Datei dar — typischerweise eine Konfigurationsdatei —, die aus einer der Vorlagendateien des Kochbuches generiert werden soll. Im nachfolgenden Beispiel wird die Konfigurationsdatei httpd.conf
aus der Vorlage apache2.conf.erb
erstellt, die wir bereits in Vorlagen erläutert haben.
template 'apache2.conf' do case node[:platform] when 'centos','redhat','fedora','amazon' path "#{node[:apache][:dir]}/conf/httpd.conf" when 'debian','ubuntu' path "#{node[:apache][:dir]}/apache2.conf" end source 'apache2.conf.erb' owner 'root' group 'root' mode 0644 notifies :restart, resources(:service => 'apache2') end
Über die Ressource wird der Name der generierten Datei sowie der Speicherort abhängig vom Betriebssystem der Instance festgelegt. Dann wird festgelegt, dass apache2.conf.erb
als Vorlage zum Erstellen der Datei verwendet wird. Außerdem werden Eigentümer, Gruppe und Modus der Datei festgelegt. Dann wird notify
ausgeführt, um die Ressource service
, die für den Apache-Server steht, anzuweisen, den Server neu zu starten. Weitere Informationen finden Sie unter template