

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.

# -Vorlagen
<a name="workingcookbook-installingcustom-components-templates"></a>

**Wichtig**  
Der AWS OpsWorks Stacks 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 das AWS Support Team auf [AWS re:POST](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support).

Viele Pakete lassen sich über eine Konfigurationsdatei konfigurieren, die im passenden Verzeichnis gespeichert wird. Sie können eine Konfigurationsdatei in einem Rezeptbuch speichern und in das entsprechende Verzeichnis kopieren. Eine flexiblere Methode ist es jedoch, die Konfigurationsdatei mithilfe eines Rezepts aus einer Vorlage zu erstellen. Ein Vorteil von Vorlagen besteht darin, dass Sie die Werte der Vorlage mithilfe von Attributen festlegen können. So lassen sich beispielsweise Konfigurationsdateien bearbeiten, ohne dass Sie Änderungen am Rezeptbuch vornehmen müssen, indem Sie einfach mit benutzerdefinierter JSON die entsprechenden Attributwerte überschreiben.

Eine Vorlage hat im Wesentlichen denselben Inhalt und dieselbe Struktur wie die zugehörige Datei. Hier sehen Sie eine Beispieldatei, `httpd.conf`.

```
ServerRoot "<%= node[:apache][:dir] %>"
<% if node[:platform] == "debian" || node[:platform] == "ubuntu" -%>
  LockFile /var/lock/apache2/accept.lock
<% else -%>
   LockFile logs/accept.lock
<% end -%>
PidFile <%= node[:apache][:pid_file] %>
Timeout <%= node[:apache][:timeout] %>
KeepAlive <%= node[:apache][:keepalive] %>
MaxKeepAliveRequests <%= node[:apache][:keepaliverequests] %>
KeepAliveTimeout <%= node[:apache][:keepalivetimeout] %>
<IfModule mpm_prefork_module>
    StartServers          <%= node[:apache][:prefork][:startservers] %>
    MinSpareServers       <%= node[:apache][:prefork][:minspareservers] %>
    MaxSpareServers       <%= node[:apache][:prefork][:maxspareservers] %>
    ServerLimit           <%= node[:apache][:prefork][:serverlimit] %>
    MaxClients            <%= node[:apache][:prefork][:maxclients] %>
    MaxRequestsPerChild   <%= node[:apache][:prefork][:maxrequestsperchild] %>
</IfModule>
...
```

Das folgende Beispiel besteht aus der Datei `httpd.conf` für eine Ubuntu-Instance:

```
ServerRoot "/etc/httpd"
LockFile logs/accept.lock
PidFile /var/run/httpd/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
    StartServers          16
    MinSpareServers       16
    MaxSpareServers       32
    ServerLimit           400
    MaxClients            400
    MaxRequestsPerChild   10000
</IfModule>
...
```

Ein Großteil des Inhalts der Vorlage wurde einfach aus der Vorlage in die Datei `httpd.conf` kopiert. `<%= ... %>`-Inhalte werden jedoch wie folgt behandelt:
+ Chef ersetzt `<%= node[:attribute][:sub_attribute][:...]%>` durch den Wert des Attributs.

  So wird `StartServers <%= node[:apache][:prefork][:startservers] %>` in `httpd.conf` beispielsweise durch `StartServers 16` ersetzt.
+ Mithilfe von `<%if-%>, <%else-%>, and <%end-%>` können Sie einen Wert anhand einer Bedingung auswählen.

  Im Beispiel wird abhängig von der Plattform ein anderer Pfad für `accept.lock` festgelegt.

**Anmerkung**  
Sie sind nicht auf die Attribute in den Attributdateien Ihres Rezeptbuchs beschränkt. Sie können sämtliche Attribute im Knotenobjekt der Instance verwenden. Zum Beispiel, vom Chef-Tool [Ohai](https://docs.chef.io/ohai.html) generiert und ebenfalls im Knotenobjekt gespeichert. Weitere Informationen zu Attributen finden Sie unter [Überschreiben der Attribute](workingcookbook-attributes.md).

Weitere Informationen zu Vorlagen, einschließlich der Einbindung von Ruby-Code, finden Sie unter [About Templates](http://docs.chef.io/templates.html).