Modèles - AWS OpsWorks

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

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé pour les nouveaux clients et 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 ou via le AWS 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 et également intégré à l'objet nœud. Pour plus d'informations sur les attributs, consultez Remplacement des attributs.

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.