

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Muitos pacotes são configurados, criando um arquivo de configuração e colocando-o no diretório apropriado. Você pode incluir um arquivo de configuração em seu livro de receitas e copiá-lo para o diretório apropriado, mas uma abordagem mais flexível é que suas receitas criem o arquivo de configuração a partir de um modelo. Uma vantagem de um modelo é que atributos podem ser usados para definir os valores do modelo. Por exemplo, isso permite que um arquivo de configuração seja modificado sem tocar no livro de receitas, usando o JSON personalizado para substituir os valores de atributo apropriados.

Um modelo tem essencialmente o mesmo conteúdo e a mesma estrutura do arquivo associado. Veja um arquivo de exemplo, `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>
...
```

O exemplo a seguir é o `httpd.conf` arquivo que foi gerado para uma instância do 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>
...
```

Grande parte do texto do modelo é simplesmente copiado do modelo para o `httpd.conf`arquivo No entanto, o conteúdo `<%= ... %>` é tratado da seguinte forma:
+ O Chef substitui `<%= node[:attribute][:sub_attribute][:...]%>` para o valor do atributo.

  Por exemplo, `StartServers <%= node[:apache][:prefork][:startservers] %>` transforma-se em `StartServers 16` no `httpd.conf`.
+ Você pode usar `<%if-%>, <%else-%>, and <%end-%>` para selecionar um valor condicionalmente.

  O exemplo define um caminho de arquivo diferente para `accept.lock`, dependendo da plataforma.

**nota**  
Você não está limitado aos atributos em seu livro de receitas de arquivos de atributo. Pode ser usado qualquer atributo no nó da instância do objeto. Gerado por uma ferramenta do Chef, chamada [Ohai](https://docs.chef.io/ohai.html), e também incorporado ao nó do objeto. Para obter mais informações sobre atributos, consulte [Sobrepor atributos](workingcookbook-attributes.md).

Para obter mais informações sobre os modelos, incluindo como incorporar o código Ruby, consulte [Sobre modelos](http://docs.chef.io/templates.html).