Sobrepor atributos integrados - 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á.

Sobrepor atributos integrados

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.

nota

Este tópico se aplica apenas a pilhas do Linux. Você não pode substituir atributos integrados em pilhas do Windows.

AWS OpsWorks O Stacks instala um conjunto de livros de receitas integrados em cada instância. Muitos dos livros de receitas integrados oferecem suporte a camadas integradas e seus arquivos de atributo definem uma variedade de configurações padrão do sistema e de aplicativo, como as definições de configuração do servidor Apache. Ao colocar essas configurações em arquivos de atributo, você pode personalizar muitas definições de configuração, substituindo o atributo integrado correspondente de uma das seguintes maneiras:

  • Defina o atributo em JSON personalizado.

    Essa abordagem tem a vantagem de ser simples e flexível. No entanto, você deve inserir manualmente o JSON personalizado, portanto, não há nenhuma maneira eficiente de gerenciar as definições de atributos.

  • Implemente um livro de receitas personalizado e defina o atributo em um arquivo de atributo customize.rb.

    Essa abordagem é menos flexível do que usar o JSON personalizado, mas é mais eficiente, pois você pode colocar livros de receitas personalizados sob o controle de código-fonte.

Este tópico descreve como usar um arquivo de atributo de livro de receitas personalizado para substituir atributos integrados, usando o servidor Apache como exemplo. Para obter mais informações sobre como substituir atributos com o JSON personalizado, consulte Usar JSON personalizado. Para consultar uma discussão geral sobre como substituir atributos, consulte Sobrepor atributos.

nota

A substituição de atributos é a maneira preferida de personalizar as definições de configuração, mas as configurações não são sempre representadas por atributos. Neste caso, você pode personalizar o arquivo de configuração substituindo o modelo que as receitas integradas usam para criar o arquivo de configuração. Para ver um exemplo, consulte Substituir modelos integrados.

Os atributos integrados normalmente representam valores nos arquivos de modelo que as receitas de configuração usam para criar arquivos de configuração. Por exemplo, uma das receitas Setup do apache2, default.rb, usa o modelo apache2.conf.erb para criar o principal arquivo de configuração de servidor do Apache, httpd.conf (Amazon Linux) ou apache2.conf (Ubuntu). O exemplo a seguir é um trecho do arquivo de modelo:

... # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests <%= node[:apache][:keepaliverequests] %> # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout <%= node[:apache][:keepalivetimeout] %> ## ## Server-Pool Size Regulation (MPM specific) ## ...

A configuração KeepAliveTimeout neste exemplo é o valor do atributo [:apache][:keepalivetimeout] O valor padrão desse atributo é definido no apache2 arquivo de atributo apache.rb do livro de receitas, conforme o trecho a seguir:

... # General settings default[:apache][:listen_ports] = [ '80','443' ] default[:apache][:contact] = 'ops@example.com' default[:apache][:log_level] = 'info' default[:apache][:timeout] = 120 default[:apache][:keepalive] = 'Off' default[:apache][:keepaliverequests] = 100 default[:apache][:keepalivetimeout] = 3 ...
nota

Para obter mais informações sobre atributos integrados comuns, consulte Atributos de livros de receitas integrados.

Para oferecer suporte à substituição de atributos integrados, todos os livros de receitas integrados contêm um arquivo de atributos customize.rb, que é incorporado a todos os módulos usando uma diretriz include_attribute. Os arquivos customize.rb dos livros de receitas integrados não contêm definições de atributos e não têm qualquer efeito sobre os atributos integrados. Para substituir os atributos integrados, crie um livro de receitas personalizado com o mesmo nome do livro de receitas integrado e coloque suas definições de atributo em um arquivo de atributos cujo nome também é customize.rb. Esse arquivo tem prioridade sobre a versão integrada e é incluído em todos os módulos relacionados. Se você definir qualquer atributo integrado em seu customize.rb, ele substituirá o atributo integrado correspondente.

Este exemplo mostra como substituir o atributo integrado [:apache][:keepalivetimeout] para definir seu valor como 5, em vez de 3. Você pode usar uma abordagem semelhante para qualquer atributo integrado. No entanto, tenha cuidado em relação a quais atributos você substitui. Por exemplo, substituir atributos no namespace opsworks pode causar problemas para algumas receitas integradas.

Importante

Não substitua atributos integrados modificando uma cópia do arquivo de atributos integrados. Por exemplo, você pode colocar uma cópia de apache.rb na pasta apache2/attributes do seu livro de receitas personalizado e modificar algumas de suas configurações. No entanto, este arquivo tem prioridade sobre a versão integrada, e as receitas integradas passarão a usar sua versão do apache.rb. Se o AWS OpsWorks Stacks modificar posteriormente o apache.rb arquivo incorporado, as receitas não receberão os novos valores, a menos que você atualize manualmente sua versão. Ao usarcustomize.rb, você substitui somente os atributos especificados; as receitas integradas continuam obtendo automaticamente up-to-date valores para cada atributo que você não substituiu.

Para iniciar, crie um livro de receitas personalizado.

Para criar o livro de receitas
  1. No seu diretório opsworks_cookbooks, crie um diretório de livros de receitas chamado apache2 e navegue até ele.

    Para substituir atributos integrados, o livro de receitas personalizado devem ter o mesmo nome que o livro de receitas integrado. Neste exemplo, é apache2.

  2. No diretório apache2, crie um diretório attributes.

  3. Adicione um arquivo chamado customize.rb ao o diretório attributes e use-o para definir os atributos integrados do livro de receitas que você deseja substituir. Para este exemplo, o arquivo deve conter o seguinte:

    normal[:apache][:keepalivetimeout] = 5
    Importante

    Para substituir um atributo integrado, um atributo personalizado deve ser do tipo normal ou superior e ter exatamente o mesmo nome de nó que o atributo integrado correspondente. O tipo normal garante que o atributo personalizado tenha prioridade sobre os atributos integrados, que são todos os atributos do tipo default. Para ter mais informações, consulte Precedência de atributo.

  4. Crie um arquivo .zip de opsworks_cookbooks chamado opsworks_cookbooks.zip e carregue o arquivo em um bucket do Amazon Simple Storage Service (Amazon S3). Para simplificar, torne o arquivo público. Registre o URL para uso posterior. Você também pode armazenar seus livros de receitas em um arquivo privado do Amazon S3 ou em vários outros tipos de repositório. Para ter mais informações, consulte Repositórios de livro de receitas.

    O conteúdo entregue aos buckets do Amazon S3 pode conter conteúdo do cliente. Para obter mais informações sobre a remoção de dados confidenciais, consulte Como faço para esvaziar um bucket do S3? ou Como faço para excluir um bucket do S3?.

Para usar o atributo personalizado, crie uma pilha e instale o livro de receitas.

Para usar o atributo personalizado
  1. Abra o console do AWS OpsWorks Stacks e selecione Add Stack (Adicionar pilha).

  2. Especifique as seguintes configurações padrão.

    • Nome — ApacheConfig

    • Região: Oeste dos EUA (Oregon)

      Você pode colocar sua pilha em qualquer região, mas recomendamos Oeste dos EUA (Oregon) para tutoriais.

    • Chave SSH padrão: um par de chaves do EC2

      Se for necessário criar um par de chaves do EC2, consulte Pares de chaves do Amazon EC2. Observe que o par de chaves deve pertencer a mesma região da AWS como a pilha.

    Escolha Advanced>>, defina Use custom Chef cookbooks como Yes e especifique as seguintes configurações.

    • Tipo de repositório: Arquivamento HTTP

    • URL do repositório: o URL do arquivo do livro de receitas que você registrou anteriormente

    Aceite os valores padrão para as outras configurações e, em seguida, escolha Add Stack para criar a pilha.

    nota

    Este exemplo usa o sistema operacional padrão, o Amazon Linux. Se preferir, use o Ubuntu. A única diferença é que, nos sistemas Ubuntu, a configuração integrada da receita produz um arquivo de configuração com as mesmas configurações chamado apache2.conf e o coloca no diretório /etc/apache2.

  3. Clique em Adicionar uma camada e adicione uma camada Java App Server à pilha com as seguintes configurações.

  4. Adicione uma instância ininterrupta com as configurações padrão à camada e inicie a instância.

    Uma instância t2.micro é suficiente para este exemplo.

  5. Depois que a instância estiver online, use SSH para fazer login. O arquivo httpd.conf está no diretório /etc/httpd/conf. Se você examinar o arquivo, verá sua configuração personalizada KeepAliveTimeout. O restante das configurações terá os valores padrão do arquivo integrado apache.rb. A parte relevante do httpd.conf deve ser semelhante a:

    ... # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 5 ...