Implementação de receitas em pilhas do Chef 11.4 - 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á.

Implementação de receitas em pilhas do Chef 11.4

Importante

A ferramenta AWS OpsWorks Stacks o 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 o AWS Support Equipe em AWS Re:post ou através de AWS Premium Support.

Importante

Não reutilize nomes de livros de receitas integrados para livros de receitas personalizados ou da comunidade. Livros de receitas personalizados com o mesmo nome de livros de receitas integrados podem falhar. Para obter uma lista completa dos livros de receitas integrados que estão disponíveis com as pilhas Chef 11.10, 11.4 e 0.9, consulte o repositório opsworks-cookbooks em. GitHub

A principal limitação das pilhas do Chef 11.4 é que as receitas não podem usar a pesquisa ou os recipientes de dados do Chef. No entanto, AWS OpsWorks O Stacks instala os atributos de configuração e implantação da pilha em cada instância que contêm muitas das informações que você obteria com a pesquisa, incluindo as seguintes:

  • Dados definidos pelo usuário do console, como nomes de hosts ou de aplicativos.

  • Dados de configuração da pilha gerados pelo AWS OpsWorks Serviço de pilhas, como camadas, aplicativos e instâncias da pilha, e detalhes sobre cada instância, como o endereço IP.

  • JSONAtributos personalizados que contêm dados fornecidos pelo usuário e podem servir praticamente à mesma finalidade dos pacotes de dados.

AWS OpsWorks O Stacks instala uma versão atual dos atributos de configuração e implantação da pilha em cada instância para cada evento do ciclo de vida, antes de iniciar a execução do Chef do evento. Os dados estão disponíveis para as receitas com a sintaxe padrão node[:attribute][:child_attribute][...]. Por exemplo, os atributos de configuração e implantação da pilha incluem o nome da pilha, node[:opsworks][:stack][:name].

O trecho a seguir, extraído de uma das receitas integradas, obtém o nome da pilha e utiliza-o para criar um arquivo de configuração.

template '/etc/ganglia/gmetad.conf' do source 'gmetad.conf.erb' mode '0644' variables :stack_name => node[:opsworks][:stack][:name] notifies :restart, "service[gmetad]" end

Muitos dos valores de atributos de configuração e implantação da pilha contêm vários atributos. Você deve fazer a iteração nesses atributos para obter as informações de que precisa. O exemplo abaixo mostra um trecho dos atributos de configuração e implantação da pilha, que são representados como JSON objeto por conveniência. Ele contém um atributo de nível superior deploy, que contém um atributo para cada um dos aplicativos da pilha, designados pelo nome abreviado do aplicativo.

{ ... "deploy": { "app1_shortname": { "document_root": "app1_root", "deploy_to": "deploy_directory", "application_type": "php", ... }, "app2_shortname": { "document_root": "app2_root", ... } }, ... }

Cada atributo de aplicativo contém um conjunto de atributos que caracterizam o aplicativo. Por exemplo, o atributo deploy_to representa o diretório de implantação aplicativo. O trecho a seguir define o usuário, o grupo e o caminho para o diretório de implantação de cada aplicativo.

node[:deploy].each do |application, deploy| opsworks_deploy_dir do user deploy[:user] group deploy[:group] path deploy[:deploy_to] end ... end

Para obter mais informações sobre os atributos de configuração e implantação da pilha, consulte Personalizando AWS OpsWorks Pilhas. Para obter mais informações sobre a implantação de diretórios, consulte Receitas de implantação.

As pilhas do Chef 11.4 não suportam pacotes de dados, mas você pode adicionar dados arbitrários à configuração da pilha e aos atributos de implantação especificando personalizados. JSON Suas receitas podem, dessa forma, acessar os dados usando a sintaxe padrão do nó do Chef. Para obter mais informações, consulte Usando o Custom JSON.

Se você precisa da funcionalidade de um recipiente de dados criptografado, uma opção é armazenar os atributos confidenciais em um local seguro, como um bucket privado do Amazon S3. Suas receitas podem então usar o AWSRuby, SDK que está instalado em todos AWS OpsWorks Empilha instâncias — para baixar os dados do bucket.

nota

Cada um AWS OpsWorks A instância Stacks tem um perfil de instância. A IAMfunção associada especifica quais AWS recursos podem ser acessados pelos aplicativos que estão sendo executados na instância. Para que suas receitas possam acessar um bucket do Amazon S3, a política de atribuição do perfil deve incluir uma instrução semelhante à seguinte, que concede permissão para a recuperação de arquivos de um bucket especificado.

"Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",

Para obter mais informações sobre os perfis de instância, consulte Especificação de permissões para aplicativos executados em instâncias EC2.