Receitas de configuração - 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á.

Receitas de configuração

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.

As receitas de configuração são atribuídas ao evento do ciclo de vida de configuração da camada, que ocorre em todas as instâncias da pilha sempre que uma instância entra ou sai do estado online. Você usa receitas de configuração a fim de ajustar a configuração de uma instância para responder à alteração, conforme apropriado. Ao implementar uma receita de configuração, lembre-se de que uma alteração feita na configuração da pilha pode envolver instâncias que não têm nada a ver com essa camada. A receita deve ser capaz de responder devidamente, o que pode significar não fazer nada em alguns casos.

tomcat::configure

A receita tomcat::configure se destina a um evento do ciclo de vida de configuração da camada.

include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'

A receita tomcat::configure é basicamente uma metarreceita que executa duas receitas dependentes.

  1. A receita tomcat::context cria um arquivo de configuração de contexto da aplicação da web.

    Este arquivo configura os recursos JDBC usados pelas aplicações para se comunicar com a instância do MySQL, conforme abordado na próxima seção. A execução dessa receita em resposta a um evento de configuração permite que a camada atualize o arquivo de configuração de contexto da aplicação da web caso a camada do banco de dados tenha sido alterada.

  2. A receita de configuração tomcat::container_config é reexecutada para capturar eventuais alterações feitas na configuração do contêiner.

O include de tomcat::container_config é comentado neste exemplo. Caso queira usar o JSON personalizado para modificar as configurações do Tomcat, você pode remover o comentário. Um evento do ciclo de vida de configuração acaba executando tomcat::container_config, que atualiza os arquivos de configuração relacionados ao Tomcat, conforme descrito em tomcat::container_config e reinicia o serviço Tomcat.

tomcat::context

O livro de receitas do Tomcat permite que os aplicativos acessem um servidor de banco de dados MySQL, que pode ser executado em uma instância separada, usando um objeto J2EE. DataSource Com o Tomcat, você pode habilitar a conexão criando e instalando um arquivo de configuração de contexto da aplicação da web para cada aplicação. Este arquivo define a relação entre a aplicação e o recurso JDBC que a aplicação usará para se comunicar com o banco de dados. Para obter mais informações, consulte The Context Container.

A finalidade principal da receita tomcat::context é criar esse arquivo de configuração.

include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end

Além dos atributos do livro de receitas do Tomcat, essa receita usa os atributos de configuração e implantação da pilha que o AWS OpsWorks Stacks instala com o evento Configure. O serviço AWS OpsWorks Stacks adiciona atributos ao objeto de nó de cada instância que contêm as informações que as receitas normalmente obteriam usando pacotes de dados ou pesquisas e instala os atributos em cada instância. Os atributos contêm informações detalhadas sobre a configuração da pilha, as aplicações implantadas e eventuais dados personalizados que um usuário deseja incluir. As receitas podem obter dados dos atributos de configuração e implantação da pilha usando a sintaxe de nó do Chef padrão. Para ter mais informações, consulte Configuração de pilha e atributos de implantação. Com as pilhas do Chef 11.10, você também pode usar o Chef para obter os dados configuração e implantação da pilha. Para ter mais informações, consulte Utilização da pesquisa do Chef.

deployattributes se refere ao [:deploy] namespace, que contém atributos relacionados à implantação que são definidos por meio do console ou da API ou gerados pelo serviço Stacks. AWS OpsWorks O atributo deploy inclui um atributo para cada aplicação implantada, com o nome abreviado da aplicação. Cada atributo da aplicação contém um conjunto de atributos que caracterizam a aplicação, como a raiz do documento ([:deploy][:appname][:document_root]).

A receita context primeiro garante que o serviço seja definido para esta execução do Chef chamando tomcat::service. Em seguida, ele define uma variável context_name que representa o nome do arquivo de configuração, excluindo a extensão .xml. Caso você use a raiz do documento padrão, context_name é definido como o nome abreviado da aplicação. Do contrário, ele é definido como a raiz do documento especificada. O exemplo abordado em Criar uma pilha e executar uma aplicação define a raiz do documento como "ROOT", de maneira que o contexto seja ROOT e o arquivo de configuração se chame ROOT.xml.

A maior parte da receita passa pela lista de aplicações implantadas e, para cada aplicação, usa o modelo webapp_context.xml.erb para criar um arquivo de configuração. O exemplo implanta apenas uma aplicação, mas a definição do atributo deploy exige que você o trate como uma lista de aplicações independentemente disso.

O modelo webapp_context.xml.erb não é específico para sistema operacional, por isso está localizado no subdiretório templates, no diretório default.

A receita cria o arquivo de configuração da seguinte forma:

  • Usando-se valores de atributo padrão, o nome do arquivo de configuração é definido como context_name.xml e instalado no diretório /etc/tomcat6/Catalina/localhost/.

    O nó ['datasources'] dos atributos de configuração da pilha contém um ou mais atributos, cada um mapeando um nome de contexto para o recurso de dados JDBC que a aplicação associada usará para se comunicar com o banco de dados. O nó e o conteúdo são definidos com o JSON personalizado quando você cria a pilha, conforme descrito posteriormente em Criar uma pilha e executar uma aplicação. O exemplo tem um único atributo que associa o nome de contexto ROOT a um recurso JDBC chamado jdbc/mydb.

  • Usando valores de atributo padrão, o usuário do arquivo e o grupo são definidos como os valores definidos pelo pacote do Tomcat: tomcat (Amazon Linux) ou tomcat6 (Ubuntu).

  • O recurso template só cria o arquivo de configuração caso o nó ['datasources'] exista e inclui um atributo context_name.

  • O recurso template define duas variáveis, resource_name e webapp_name.

    resource_name é definido como o nome do recurso associado a context_name e webapp_name é definido como o nome abreviado da aplicação.

  • O recurso do modelo reinicia o serviço Tomcat para carregar e ativar as alterações.

O modelo webapp_context.xml.erb consiste em um elemento Context que contém um elemento Resource com o próprio conjunto de atributos.

Os atributos Resource caracterizam a configuração do contexto:

  • name: o nome do recurso JDBC, definido como o valor resource_name definido em tomcat::context.

    Por exemplo, o nome do recurso é definido como jdbc/mydb.

  • auth e type: estas são configurações padrão para conexões JDBC DataSource.

  • maxActive, maxIdle e maxWait: o número máximo de conexões ativas e inativas, e o tempo de espera máximo para uma conexão ser retornada.

  • username e password: o nome de usuário e a senha raiz do banco de dados, obtidos junto aos atributos deploy.

  • driverClassName— O nome da classe do driver JDBC, que é definido como o driver MySQL.

  • url: a conexão URL.

    O prefixo depende do banco de dados. Ele deve ser definido como jdbc:mysql para MySQL, jdbc:postgresql para Postgres e jdbc:sqlserver para SQL Server. O exemplo define o URL como jdbc:mysql://host_IP_Address:3306:simplejsp, em que simplejsp é o nome abreviado do aplicativo.

  • factory: a fábrica DataSource, obrigatória para bancos de dados MySQL.

Para obter mais informações sobre esse arquivo de configuração, consulte o DataSources tópico Usando no wiki do Tomcat.