Substituir modelos 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á.

Substituir modelos 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 modelos integrados em pilhas do Windows.

As receitas integradas do AWS OpsWorks Stacks usam modelos para criar arquivos em instâncias, principalmente arquivos de configuração para servidores, como o Apache. Por exemplo, as receitas apache2 usam o modelo apache2.conf.erb para criar o arquivo de configuração principal do servidor Apache, httpd.conf (Amazon Linux) ou apache2.conf (Ubuntu).

A maioria das definições de configuração nesses modelos é representada por atributos. Portanto, a melhor maneira de personalizar um arquivo de configuração é substituir os atributos integrados apropriados. Para ver um exemplo, consulte Sobrepor atributos integrados. No entanto, se as configurações que você deseja personalizar não estiverem representadas por atributos integrados ou não estiverem no modelo, você deve substituir o modelo em si. Este tópico descreve como substituir um modelo integrado para especificar uma definição de configuração do Apache.

Você pode fornecer respostas de erro personalizadas para o Apache, adicionando as configurações ErrorDocument ao arquivo httpd.conf. apache2.conf.erb contém apenas alguns exemplos comentados, como mostrado a seguir:

... # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...

Como essas configurações são comentários codificados, você não pode especificar valores personalizados substituindo atributos, deve substituir o modelo propriamente dito. No entanto, ao contrário dos atributos, não é possível substituir partes específicas de um arquivo de modelo. Você deve criar um livro de receitas personalizado com o mesmo nome que a versão integrada, copiar o arquivo de modelo para o mesmo subdiretório e modificar o arquivo conforme o necessário. Este tópico mostra como substituir o apache2.conf.erb para obter uma resposta ao erro 500. Para ver uma discussão geral sobre a substituição de modelos, consulte Uso de modelos personalizados.

Importante

Quando você substitui um modelo integrado, as receitas integradas usam sua versão personalizada do modelo, em vez da versão integrada. Se o AWS OpsWorks Stacks atualizar o modelo integrado, o modelo personalizado ficará fora de sincronia e poderá não funcionar corretamente. AWS OpsWorks O Stacks não faz essas alterações com frequência e, quando um modelo muda, o AWS OpsWorks Stacks lista as alterações e oferece a opção de atualizar para uma nova versão. Recomendamos que você monitore as alterações no repositório do AWS OpsWorks Stacks e atualize manualmente seu modelo personalizado, conforme o necessário. Observe que o repositório tem uma ramificação específica para cada versão do Chef com suporte, então verifique se você está na ramificação correta.

Para iniciar, crie um livro de receitas personalizado.

Para criar o livro de receitas
  1. Crie um opsworks_cookbooks diretório em seu diretório de livros de receitas chamado apache2 e navegue até ele. Para substituir modelos integrados, o livro de receitas personalizado deve ter o mesmo nome que o livro de receitas integrado. Neste exemplo, é apache2.

    nota

    Se você já tiver concluído a demonstração Sobrepor atributos integrados, use o mesmo livro de receitas apache2 neste exemplo e pule a Etapa 2.

  2. Crie um arquivo metadata.rb com o conteúdo a seguir. Em seguida, salve-o no diretório apache2 .

    name "apache2" version "0.1.0"
  3. No diretório apache2, crie um diretório templates/default.

    nota

    O diretório templates/default funciona para as instâncias do Amazon Linux, que usam o modelo apache2.conf.erb padrão. As instâncias Ubuntu 14.04 usam um modelo apache2.conf.erb específico do sistema operacional, que está no diretório templates/ubuntu-14.04. Se você quiser que a personalização se aplique às instâncias do Ubuntu 14.04, substitua esse modelo também.

  4. Copie o modelo apache2.conf.erb integrado no diretório templates/default. Abra o arquivo de modelo, exclua a linha ErrorDocument 500 e forneça uma mensagem de erro personalizada, como o exemplo a seguir:

    ... ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html ...
  5. Crie um arquivo .zip de opsworks_cookbooks chamado opsworks_cookbooks.zip e, em seguida, faça upload dele em um bucket do Amazon Simple Storage Service (Amazon S3). Para simplificar, torne o arquivo público. Registre o URL do arquivo 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?.

nota

Para simplificar, este exemplo adiciona uma mensagem de erro fixada ao modelo. Para alterá-la, você deve modificar o modelo e reinstalar o livro de receitas. Para ter maior flexibilidade, defina um atributo personalizado padrão para a string de erro no arquivo de atributo customize.rb do livro de receitas personalizado e atribua o valor do atributo ao ErrorDocument 500. Por exemplo, se você nomear o atributo [:apache][:custom][:error500], a linha correspondente em apache2.conf.erb deverá ser semelhante a:

... ErrorDocument 500 <%= node[:apache][:custom][:error500] %> #ErrorDocument 404 /missing.html ...

Em seguida, você pode alterar a mensagem de erro personalizada a qualquer momento, substituindo [:apache][:custom][:error500]. Se você utilizar o JSON personalizado para substituir o atributo, não será necessário mexer no mesmo livro de receitas.

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

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

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

    • Nome — ApacheTemplate

    • Região: Oeste dos EUA (Oregon)

    • Chave SSH padrão: um par de chaves do Amazon Elastic Compute Cloud (Amazon EC2)

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

    Escolha Advanced>> e escolha Use custom Chef cookbooks para especificar 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.

  3. Clique em Adicionar uma camada e, em seguida, 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. O arquivo deve conter sua configuração personalizada ErrorDocument, que deve ser semelhante a:

    ... # Some examples: ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...