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
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
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.