

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Anda mengkonfigurasi banyak paket dengan membuat file konfigurasi dan menempatkannya di direktori yang sesuai. Anda dapat menyertakan file konfigurasi di buku masak Anda dan menyalinnya ke direktori yang sesuai, tetapi pendekatan yang lebih fleksibel adalah meminta resep Anda membuat file konfigurasi dari templat. Salah satu keuntungan dari template adalah Anda dapat menggunakan atribut untuk menentukan nilai template. Ini memungkinkan Anda, misalnya, untuk memodifikasi file konfigurasi tanpa menyentuh buku masak dengan menggunakan JSON khusus untuk mengganti nilai atribut yang sesuai.

Template pada dasarnya memiliki konten dan struktur yang sama dengan file terkait. Berikut adalah contoh file,`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>
...
```

Contoh berikut adalah `httpd.conf` file yang dihasilkan untuk instance Ubuntu:

```
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>
...
```

Sebagian besar teks template hanya disalin dari template ke `httpd.conf` file. Namun, `<%= ... %>` konten ditangani sebagai berikut:
+ Chef menggantikan `<%= node[:attribute][:sub_attribute][:...]%>` dengan nilai atribut.

  Misalnya, `StartServers <%= node[:apache][:prefork][:startservers] %>` menjadi `StartServers 16` di`httpd.conf`.
+ Anda dapat menggunakan `<%if-%>, <%else-%>, and <%end-%>` untuk memilih nilai secara kondisional.

  Contoh menetapkan jalur file yang berbeda untuk `accept.lock` tergantung pada platform.

**catatan**  
Anda tidak terbatas pada atribut dalam file atribut buku masak Anda. Anda dapat menggunakan atribut apapun dalam objek node instance ini. Misalnya, dihasilkan oleh alat Chef yang disebut [Ohai](https://docs.chef.io/ohai.html) dan juga dimasukkan ke dalam objek node. Untuk informasi lebih lanjut tentang atribut, lihat[Mengesampingkan Atribut](workingcookbook-attributes.md).

Untuk informasi selengkapnya tentang template, termasuk cara menggabungkan kode Ruby, lihat [Tentang Template](http://docs.chef.io/templates.html).