

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
<a name="workingcookbook-chef11-4"></a>

**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](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/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](https://github.com/aws/opsworks-cookbooks)

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, o OpsWorks Stacks instala [os atributos de configuração e implantação da pilha](workingcookbook-json.md) 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 serviço OpsWorks Stacks, como camadas, aplicativos e instâncias da pilha, além de detalhes sobre cada instância, como o endereço IP.
+ Atributos de JSON personalizados que contêm dados fornecidos pelo usuário e podem servir ao mesmo propósito que os recipientes de dados.

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 a seguir mostra um trecho com atributos de configuração e implantação da pilha, que são representados como objetos JSON 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 pilhas OpsWorks](customizing.md). Para obter mais informações sobre a implantação de diretórios, consulte [Receitas de implantação](create-custom-deploy.md).

As pilhas do Chef 11.4 não são compatíveis com os recipientes de dados, mas você pode adicionar dados arbitrários aos atributos de configuração e implantação da stack especificando um [JSON personalizado](workingstacks-json.md). Suas receitas podem, dessa forma, acessar os dados usando a sintaxe padrão do nó do Chef. Para obter mais informações, consulte [Usar JSON personalizado](workingcookbook-json-override.md).

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 [AWS Ruby SDK](https://aws.amazon.com/documentation/sdkforruby/), que está instalado em todas as instâncias do OpsWorks Stacks, para baixar os dados do bucket. 

**nota**  
Cada instância do OpsWorks Stacks tem um perfil de instância. O [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) associado especifica quais recursos do AWS podem ser acessados por 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](opsworks-security-appsrole.md).