Modelli - AWS OpsWorks

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Modelli

Importante

AWS OpsWorks Stacksnon accetta più nuovi clienti. I clienti esistenti potranno utilizzare la OpsWorks console, l'API, la CLI e CloudFormation le risorse normalmente fino al 26 maggio 2024, momento in cui verranno interrotte. Per prepararti a questa transizione, ti consigliamo di trasferire i tuoi stack a il prima AWS Systems Manager possibile. Per ulteriori informazioni, consultare AWS OpsWorks StacksDomande frequenti sulla fine del ciclo di vita e Migrazione AWS OpsWorks Stacks delle applicazioni su AWS Systems Manager Application Manager.

È possibile configurare molti pacchetti creando un file di configurazione e posizionandolo nella directory appropriata. È possibile includere un file di configurazione nel proprio libro di ricette e copiarlo nella directory appropriata, ma un approccio più flessibile è far creare alle proprie ricette il file di configurazione da un modello. Uno dei vantaggi di un modello è che è possibile utilizzare gli attributi per definire i valori del modello. In questo modo è possibile, per esempio, modificare un file di configurazione senza toccare il libro di cucina utilizzando JSON personalizzato per sostituire i valori di attributo appropriati.

Un modello ha essenzialmente lo stesso contenuto e la stessa struttura del file associato. Ecco un file di esempio, 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'esempio seguente è il file httpd.conf che è stato generato per un'istanza 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> ...

La maggior parte del testo del modello viene semplicemente copiata dal modello al file httpd.conf. Tuttavia, il contenuto <%= ... %> viene gestito come segue:

  • Chef sostituisce <%= node[:attribute][:sub_attribute][:...]%> con il valore dell'attributo.

    Per esempio, StartServers <%= node[:apache][:prefork][:startservers] %> diventa StartServers 16 nel httpd.conf.

  • È possibile utilizzare <%if-%>, <%else-%>, and <%end-%> per selezionare un valore in base a condizioni.

    L'esempio imposta un percorso di file diverso per accept.lock a seconda della piattaforma.

Nota

Non si è limitati agli attributi nei file di attributo del proprio libro di ricette. È possibile utilizzare qualsiasi attributo nell'oggetto nodo dell'istanza. Per esempio, generato da uno strumento Chef chiamato Ohai e anche integrato nell'oggetto nodo. Per ulteriori informazioni sugli attributi, consulta Sostituzione degli attributi.

Per ulteriori informazioni sui modelli e su come incorporare il codice Ruby, consulta About Templates (Riguardo agli attributi).