Modelos - AWS OpsWorks

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

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 ou por meio do Premium AWS 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.confarquivo 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, e também incorporado ao nó do objeto. Para obter mais informações sobre atributos, consulte Sobrepor atributos.

Para obter mais informações sobre os modelos, incluindo como incorporar o código Ruby, consulte Sobre modelos.