

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Modèles
<a name="workingcookbook-installingcustom-components-templates"></a>

**Important**  
Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur [AWS Re:Post](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium.

Vous configurez un grand nombre de packages en créant un fichier de configuration et en le plaçant dans le répertoire approprié. Vous pouvez inclure un fichier de configuration dans votre livre de recettes et le copier dans le répertoire approprié, mais une approche plus souple consiste à ce que vos recettes créent le fichier de configuration à partir d'un modèle. L'un des avantages d'un modèle est que vous pouvez utiliser des attributs pour définir les valeurs du modèle. Cela vous permet, par exemple, de modifier un fichier de configuration sans toucher le livre de recettes en utilisant un JSON personnalisé pour remplacer les valeurs d'attribut appropriées.

Un modèle possède essentiellement le même contenu et la même structure que le fichier associé. Voici un exemple de fichier : `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>
...
```

L'exemple suivant est le fichier `httpd.conf` qui a été généré pour une 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>
...
```

Une grande partie du texte du modèle est simplement copiée à partir du modèle dans le fichier `httpd.conf`. Cependant, le contenu `<%= ... %>` est géré comme suit :
+ Chef remplace `<%= node[:attribute][:sub_attribute][:...]%>` par la valeur de l'attribut.

  Par exemple, `StartServers <%= node[:apache][:prefork][:startservers] %>` devient `StartServers 16` dans le fichier `httpd.conf`.
+ Vous pouvez utiliser `<%if-%>, <%else-%>, and <%end-%>` de manière conditionnelle pour sélectionner une valeur.

  L'exemple définit un chemin d'accès différent pour `accept.lock` en fonction de la plateforme.

**Note**  
Vous n'êtes pas limité aux attributs des fichiers d'attributs de votre livre de recettes. Vous pouvez utiliser un attribut dans l'objet nœud de l'instance. Par exemple, généré par un outil Chef appelé [Ohai](https://docs.chef.io/ohai.html) et également intégré à l'objet nœud. Pour plus d'informations sur les attributs, consultez [Remplacement des attributs](workingcookbook-attributes.md).

Pour plus d'informations sur les modèles, y compris sur la façon d'intégrer le code Ruby, consultez [À propos des modèles](http://docs.chef.io/templates.html).