

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

# Livros de receitas e receitas
<a name="workingcookbook"></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).

OpsWorks O Stacks usa os livros de receitas do Chef para lidar com tarefas como instalar e configurar pacotes e implantar aplicativos. Esta seção descreve como usar livros de receitas com o OpsWorks Stacks. Para obter mais informações, consulte [Chef](http://www.opscode.com/).

**nota**  
OpsWorks Atualmente, o Stacks oferece suporte às versões 12, 11.10.4, 11.4.4 e 0.9.15.5 do Chef. Porém, o Chef 0.9.15.5 está obsoleto e não é recomendável usá-lo para novas pilhas. Para sua conveniência, essas versões são geralmente chamadas apenas pelos números de versão maior e menor. As pilhas que executam o Chef 0.9 ou 11.4 usam o [Chef Solo](https://docs.chef.io/chef_solo.html) e as pilhas que executam o Chef 12 ou 11.10 usam o [Chef Client](http://www.getchef.com/blog/2013/10/31/chef-client-z-from-zero-to-chef-in-8-5-seconds/) no modo local. Para pilhas do Linux, você pode usar o Gerenciador de configuração para especificar a versão do Chef que deseja utilizar quando [cria uma pilha](workingstacks-creating.md). As pilhas do Windows devem usar Chef 12.2. Para obter mais informações, incluindo as orientações necessárias para migrar pilhas para versões mais recentes do Chef, consulte [Versões do Chef](workingcookbook-chef11.md).

**Topics**
+ [Repositórios de livro de receitas](workingcookbook-installingcustom-repo.md)
+ [Versões do Chef](workingcookbook-chef11.md)
+ [Versões do Ruby](workingcookbook-ruby.md)
+ [Instalação de livros de receitas personalizados](workingcookbook-installingcustom-enable.md)
+ [Atualizar livros de receitas personalizadas](workingcookbook-installingcustom-enable-update.md)
+ [Execução de receitas](workingcookbook-executing.md)

# Repositórios de livro de receitas
<a name="workingcookbook-installingcustom-repo"></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).

Seus livros de receita personalizados devem ser armazenados em um repositório online, seja um arquivo como um .zip ou um gerente de controle de fonte como Git. Uma pilha pode ter apenas um repositório de livro de receitas personalizado, mas o repositório pode conter qualquer número de livros de receita. Quando você instala ou atualiza os livros de receitas, o OpsWorks Stacks instala o repositório inteiro em um cache local em cada uma das instâncias da pilha. Quando uma instância precisa, por exemplo, executar uma ou mais receitas, ela usa o código do cache local.

A seguir veja a descrição de como estruturar seu repositório de livro de receitas, que depende do tipo. O texto em itálico nas ilustrações representa nomes de diretório e arquivo definidos pelo usuário, incluindo o nome do repositório ou arquivo.

**Gerente do controle de fonte**  
OpsWorks O Stacks é compatível com os seguintes gerenciadores de controle de origem:  
+ Pilhas do Linux: Git e Subversion
+ Pilhas do Windows: Git
Veja a seguir a estrutura de diretório e arquivo necessários:  

![\[Estrutura obrigatória para repositórios de livros de receita SCM\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/cookbook_folders.png)

+ Os diretórios dos livros de receita devem ser todos de excelente nível.

**Arquivo**  
OpsWorks O Stacks suporta os seguintes arquivos:  
+ Pilhas do Linux: arquivos zip, gzip, bzip2 ou tarball, armazenados no Amazon S3 ou em um site (arquivamento HTTP). 

  OpsWorks O Stacks não suporta arquivos tar não compactados.
+ Pilhas do Windows: arquivos zip e tgz (tar compactados em gzip), armazenados no Amazon S3.
Veja a seguir o diretório necessário e estrutura de arquivo, que dependem se você está executando uma pilha do Linux ou Windows. A estrutura do livro de receitas é a mesma para os repositórios de SCM, então é representada por três-pontos (...).  

![\[Estrutura obrigatória para arquivamentos\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/cookbook_folders_archive.png)

+ Pilhas do Linux: os diretórios dos livros de receitas devem estar contidos em um diretório raiz. 
+ Pilhas do Windows: os livros de receita devem estar no topo de nível do arquivo.

  Se tiver apenas um livro de receitas, você pode omitir opcionalmente o diretório do livro de receitas e colocar os seus arquivos em nível superior. Nesse caso, o OpsWorks Stacks obtém o nome do livro de receitas do metadata.rb.

Cada diretório de livro de receitas tem pelo menos um e geralmente todos desses diretórios e arquivos padrão a seguir, que devem usar nomes padrão:
+ `attributes`: os arquivos de atributos do livro de receitas. 
+ `recipes`: os arquivos de receita do livro de receitas.
+ `templates`: os arquivos modelo do livro de receitas. 
+ *other*— Diretórios opcionais definidos pelo usuário que contêm outros tipos de arquivo, como definições ou especificações.
+ `metadata.rb`: os metadados do livro de receitas.

  Para Chef 11.10 e posterior, se suas receitas dependerem de outros livros de receitas, você deve incluir declarações de `depends` correspondentes no arquivo de seu livro de receitas de `metadata.rb`. Por exemplo, se o seu livro de receitas inclui uma receita com a instrução `include_recipe anothercookbook::somerecipe`, o arquivo `metadata.rb` do livro de receitas deve incluir a seguinte linha: `depends "anothercookbook"`. Para obter mais informações, consulte [Sobre metadados do livro de receitas](http://docs.chef.io/cookbook_repo.html#about-cookbook-metadata).

Os modelos devem estar em um subdiretório do diretório `templates`, que contém pelo menos um e opcionalmente múltiplos subdiretórios. Esses subdiretórios podem, opcionalmente, ter subdiretórios também.
+ Os modelos geralmente têm um subdiretório `default`, que contém os arquivos de modelo que Chef usa por padrão.
+ *other* representa subdiretórios opcionais que podem ser usados para modelos específicos de sistemas operacionais.
+ Chef usa automaticamente o modelo do subdiretório apropriado, com base em convenções de nome que são descritas em [Especificidade do arquivo](http://docs.chef.io/templates.html#file-specificity). Por exemplo, para os sistemas operacionais Linux e , você pode colocar modelos específicos de sistema operacional em subdiretórios nomeados `amazon`amazon ou `ubuntu`ubuntu, respectivamente.

Os detalhes de como lidar com livros de receita personalizados dependem de seu tipo de repositório preferido. 

**Para usar um arquivo**

1. Implemente seu livro de receitas usando a estrutura de pasta mostrada na seção anterior.

1. Crie um arquivo comprimido e carregue-o para um bucket Amazon S3 ou site.

   Se você atualizar seus livros de receita, deve criar e carregar um novo arquivo de armazenamento. 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?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) ou [Como faço para excluir um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

**Para usar um SCM**

1. Configure um repositório de Git ou Subversion usando a estrutura mostrada anteriormente.

1. Opcionalmente, use os recursos de controle da versão para implementar diversas ramificações ou versões.

   Se você atualizar seus livros de receitas, poderá fazer isso em uma nova ramificação e apenas OpsWorks direcionar para usar a nova versão. Também é possível especificar versões marcadas em particular. Para obter detalhes, consulte [Especificação de um repositório de livro de receitas personalizado](workingcookbook-installingcustom-enable.md#workingcookbook-installingcustom-enable-repo).

[Instalação de livros de receitas personalizados](workingcookbook-installingcustom-enable.md)descreve como fazer com que o OpsWorks Stacks instale seu repositório de livros de receitas nas instâncias da pilha.

**Importante**  
Depois de atualizar os livros de receitas existentes no repositório, você deve executar o comando `update_cookbooks` stack para direcionar o OpsWorks Stacks a atualizar o cache local de cada instância online. Para obter mais informações, consulte [Executa comandos de pilha](workingstacks-commands.md).

# Versões do Chef
<a name="workingcookbook-chef11"></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).

OpsWorks O Stacks suporta várias versões do Chef. Você seleciona a versão ao [criar a pilha](workingstacks-creating.md). OpsWorks O Stacks então instala essa versão do Chef em todas as instâncias da pilha junto com um conjunto de receitas integradas que são compatíveis com essa versão. Se você instalar uma ou mais receitas personalizadas, elas devem ser compatíveis com a versão do Chef usada pela pilha.

OpsWorks Atualmente, o Stacks oferece suporte às versões 12, 11.10, 11.4 e 0.9 do Chef para pilhas Linux e ao Chef 12.2 (atualmente Chef 12.22) para pilhas do Windows. Para sua conveniência, essas versões são geralmente chamadas apenas pelos números de versão maior e menor. Para pilhas do Linux, você pode usar o Gerenciador de configuração para especificar a versão do Chef que deseja utilizar quando [cria uma pilha](workingstacks-creating.md). As pilhas do Windows devem usar Chef 12.2. Para obter mais informações, incluindo as orientações necessárias para migrar pilhas para versões mais recentes do Chef, consulte [Versões do Chef](#workingcookbook-chef11). Para obter informações completas sobre as versões, consulte [OpsWorks Sistemas operacionais de pilha](workinginstances-os.md).

**Chef 12.2**  
O suporte ao Chef 12.2 foi introduzido em maio de 2015 e é usado somente por pilhas do Windows. A versão atual do Chef nas pilhas do Windows é o Chef 12.22. Ela é executada com o Ruby 2.3.6 e usa [o cliente do Chef no modo local](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode) que executa um servidor do Chef na memória local chamado [chef-zero](https://docs.chef.io/ctl_chef_client.html#about-chef-zero). A presença desse servidor permite que as receitas utilizem a pesquisa e os recipientes de dados do Chef. O suporte apresenta algumas limitações que são descritas em [Implementação de receitas: Chef 12.2](workingcookbook-chef12.md), mas você pode executar vários livros de receitas da comunidade, sem alterações.

**Chef 12**  
O suporte ao Chef 12 foi introduzido em dezembro de 2015 e é usado somente por pilhas do Linux. Ele é executado com o Ruby 2.1.6 ou 2.2.3 e usa [o cliente do Chef no modo local](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode), o que permite que as receitas utilizem a pesquisa e os recipientes de dados do Chef. Para obter mais informações, consulte [OpsWorks Sistemas operacionais de pilha](workinginstances-os.md).

**Chef 11.10**  
O suporte ao Chef 11.10 foi introduzido em março de 2014, e é usado somente por pilhas do Linux. Ele é executado com o Ruby 2.0.0 e usa [o cliente do Chef no modo local](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode), o que permite que as receitas utilizem a pesquisa e os recipientes de dados do Chef. O suporte apresenta algumas limitações que são descritas em [Implementação de receitas: Chef 11.10](workingcookbook-chef11-10.md), mas você pode executar vários livros de receitas da comunidade, sem alterações. Você também pode usar o [Berkshelf](http://berkshelf.com/) para gerenciar suas dependências dos livros de receitas. As versões compatíveis do Berkshelf dependem do sistema operacional. Para obter mais informações, consulte [OpsWorks Sistemas operacionais de pilha](workinginstances-os.md). Não é possível criar pilhas do CentOS que usam o Chef 11.10.

**Chef 11.4**  
O suporte ao Chef 11.4 foi introduzido em julho de 2013 e é usado somente por pilhas do Linux. Ele é executado com o Ruby 1.8.7 e usa o [chef-solo](https://docs.chef.io/chef_solo.html), que não oferece suporte à pesquisa ou aos recipientes de dados do Chef. Muitas vezes, você pode usar livros de receitas da comunidade que dependem desses recursos com o OpsWorks Stacks, mas deve modificá-los conforme descrito em. [Migração para uma nova versão do Chef](workingcookbook-chef11-migrate.md) Não é possível criar pilhas do CentOS que usam o Chef 11.4. As pilhas do Chef 11.4 não são compatíveis com endpoints regionais fora do Leste dos EUA (N. da Virgínia).

**Chef 0.9**  
 O Chef 0.9 é usado somente por pilhas do Linux e não é mais compatível. Observe os seguintes detalhes:   
+ Não é possível usar o console para criar uma nova pilha do Chef 0.9.

  Você deve usar a CLI ou API, ou criar uma pilha usando uma versão diferente do Chef e, em seguida, editar a configuração da pilha.
+ Os novos recursos de OpsWorks pilhas não estão disponíveis para pilhas do Chef 0.9.
+ As novas versões de sistemas operacionais fornecerão apenas suporte limitado para pilhas do Chef 0.9.

  O Amazon Linux 2014.09 e suas versões posteriores não são compatíveis com as pilhas do Chef 0.9 com camadas Rails App Server que dependem do Ruby 1.8.7.
+ As novas regiões da AWS, incluindo a Europa (Frankfurt), não são compatíveis com as pilhas do Chef 0.9.
Não é recomendável usar o Chef 0.9 para novas pilhas. Você deve migrar as pilhas existentes para a última versão do Chef o mais rápido possível.

Se você quiser usar livros de receitas da comunidade com OpsWorks Stacks, recomendamos [que você especifique o Chef 12](workingstacks-creating.md) para novas pilhas Linux e migre suas pilhas Linux existentes para o Chef 12. Você pode usar o console, a API ou a CLI do OpsWorks Stacks para migrar suas pilhas existentes para uma versão mais recente do Chef. Para obter mais informações, consulte [Migração para uma nova versão do Chef](workingcookbook-chef11-migrate.md).

**Topics**
+ [Implementação de receitas em pilhas do Chef 12.2](workingcookbook-chef12.md)
+ [Implementação de receitas em pilhas do Chef 12](workingcookbook-chef12-linux.md)
+ [Implementação de receitas em pilhas do Chef 11.10](workingcookbook-chef11-10.md)
+ [Implementação de receitas em pilhas do Chef 11.4](workingcookbook-chef11-4.md)
+ [Migração de uma pilha existente do Linux para uma nova versão do Chef](workingcookbook-chef11-migrate.md)

# Implementação de receitas em pilhas do Chef 12.2
<a name="workingcookbook-chef12"></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).

Chef 12.2 (atualmente Chef 12.22) está disponível somente em pilhas do Windows, o qual deve executar essa versão do Chef.
+ As receitas devem usar atributos e recursos específicos do Windows para algumas finalidades.

  Para obter mais informações, consulte [Chef para Microsoft Windows](https://docs.chef.io/windows.html).
+ As execuções do Chef usam o Ruby 2.3.6 e, portanto, suas receitam podem usar a nova sintaxe do Ruby.
+ As receitas podem usar a pesquisa e os recipientes de dados do Chef.

  As pilhas do Chef 12.2 podem usar muitos livros de receitas da comunidade sem alterá-los. Para obter mais informações, consulte [Utilização da pesquisa do Chef](workingcookbook-chef11-10.md#workingcookbook-chef11-10-search) e [Utilização de recipientes de dados](workingcookbook-chef11-10.md#workingcookbook-chef11-10-databag).
+ A maioria dos atributos de configuração e implantação de pilha descritos em [OpsWorks Referência do Stacks Data Bag](data-bags.md) e [Atributos de livros de receitas integrados](attributes-recipes.md) estão disponíveis nas receitas do Windows.

  Você pode usar a pesquisa do Chef para obter os valores desses atributos. Para ver um exemplo, consulte [Obter valores de atributo com a pesquisa do Chef](cookbooks-101-opsworks-opsworks-stack-config-search.md). Para obter uma lista de atributos, consulte [OpsWorks Referência do Stacks Data Bag](data-bags.md).

# Implementação de receitas em pilhas do Chef 12
<a name="workingcookbook-chef12-linux"></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).

As pilhas do Chef 12 apresentam as seguintes vantagens em relação às pilhas do Chef 11.10:
+ As execuções do Chef usam o Ruby 2.1.6 e, portanto, suas receitam podem usar a nova sintaxe do Ruby.
+ As pilhas do Chef 12 podem usar ainda mais livros de receitas da comunidade sem alterá-los. Com a ausência dos livros de receitas integrados, não há mais chance de conflito de nome entre os livros de receitas integrados e os livros de receitas personalizados. 
+ Você não está mais limitado às versões da Berkshelf para as quais o OpsWorks Stacks forneceu pacotes pré-construídos. O Berkshelf não está mais instalado nas instâncias do OpsWorks Stacks no Chef 12. Em vez disso, você pode usar qualquer versão do Berkshelf na sua estação de trabalho local. 
+ Agora há uma separação clara entre os livros de receitas integrados que o OpsWorks Stacks fornece com o Chef 12 (Elastic Load Balancing, Amazon RDS e Amazon ECS) e os livros de receitas personalizados. Isso torna mais fácil a solução de problemas em execuções com falha do Chef.

# Implementação de receitas em pilhas do Chef 11.10
<a name="workingcookbook-chef11-10"></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).

As pilhas do Chef 11.10 apresentam as seguintes vantagens em relação às stacks do Chef 11.4:
+ As execuções do Chef usam o Ruby 2.0.0 e, portanto, suas receitam podem usar a nova sintaxe do Ruby.
+ As receitas podem usar a pesquisa e os recipientes de dados do Chef.

  As pilhas do Chef 11.10 podem usar muitos livros de receitas da comunidade sem alterá-los.
+ Você pode usar o Berkshelf para gerenciar os livros de receitas.

  O Berkshelf oferece uma maneira muito mais flexível de gerenciar os seus livros de receitas personalizados e usar os livros de receitas da comunidade em uma pilha.
+ Os livros de receitas devem ter suas dependências declaradas no `metadata.rb`.

  Se o seu livro de receitas depende de outro livro de receitas, você deve incluir essa dependência no arquivo `metadata.rb` do livro de receitas. Por exemplo, se o seu livro de receitas inclui uma receita com a instrução `include_recipe anothercookbook::somerecipe`, o arquivo `metadata.rb` do livro de receitas deve incluir a seguinte linha: `depends "anothercookbook"`.
+ OpsWorks O Stacks instala um cliente MySQL nas instâncias de uma pilha somente se a pilha incluir uma camada MySQL.
+ OpsWorks O Stacks instala um cliente Ganglia nas instâncias de uma pilha somente se a pilha incluir uma camada Ganglia.
+ Se uma implantação executar a `bundle install` e a instalação falhar, a implantação também falha.

**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)  
Livros de receitas com caracteres não ASCII que são executados com êxito nas pilhas do Chef 0.9 e 11.4 podem falhar quando executados em uma pilha do Chef 11.10. Isso ocorre porque as pilhas do Chef 11.10 usam o Ruby 2.0.0 para execuções do Chef, que é muito mais rigoroso em relação à codificação do que o Ruby 1.8.7. Para garantir que os livros de receitas executem com êxito nas pilhas do Chef 11.10, todo arquivo que utiliza caracteres não ASCII deve ter um comentário na parte superior informando sobre a codificação. Por exemplo, para a codificação UTF-8, o comentário seria `# encoding: UTF-8`. Para obter mais informações sobre a codificação no Ruby 2.0.0, consulte [Codificação](http://www.ruby-doc.org/core-2.0.0/Encoding.html).

**Topics**
+ [Instalação e precedência em livros de receitas](#workingcookbook-chef11-10-override)
+ [Utilização da pesquisa do Chef](#workingcookbook-chef11-10-search)
+ [Utilização de recipientes de dados](#workingcookbook-chef11-10-databag)
+ [Utilização do Berkshelf](#workingcookbook-chef11-10-berkshelf)

## Instalação e precedência em livros de receitas
<a name="workingcookbook-chef11-10-override"></a>

O procedimento para instalar os livros de receitas do OpsWorks Stacks funciona de forma um pouco diferente para as pilhas do Chef 11.10 do que para as versões anteriores do Chef. Para pilhas do Chef 11.10, depois que o OpsWorks Stacks instala os livros de receitas integrados, personalizados e Berkshelf, ele os mescla em um diretório comum na seguinte ordem:

1. Livros de receitas integrados.

1. Livros de receitas do Berkshelf, se houver.

1. Livros de receitas personalizados, se houver. 

Quando o OpsWorks Stacks realiza essa mesclagem, ele copia todo o conteúdo dos diretórios, incluindo receitas. Se houver duplicatas, as seguintes regras se aplicam:
+ O conteúdo dos livros de receitas do Berkshelf tem preferência sobre os livros de receitas integrados.
+ O conteúdo dos livros de receitas personalizados tem preferência sobre os livros de receitas do Berkshelf.

Para ilustrar como esse processo funciona, considere o seguinte cenário, onde todos os três diretórios de livros de receitas contêm um livro de receitas chamado `mycookbook`:
+ Livros de receitas integrados: `mycookbook` inclui um arquivo de atributos chamado `someattributes.rb`, um arquivo de modelo chamado `sometemplate.erb` e uma receita chamada `somerecipe.rb`.
+ Livros de receitas do Berkshelf: `mycookbook` inclui `sometemplate.erb` e `somerecipe.rb`.
+ Livros de receitas personalizados: `mycookbook` inclui `somerecipe.rb`.

O livro de receitas mesclado contém o seguinte:
+ `someattributes.rb` do livro de receitas integrado.
+ `sometemplate.erb` do livro de receitas do Berkshelf.
+ `somerecipe.rb` do livro de receitas personalizado.

**Importante**  
Você não deve personalizar sua pilha do Chef 11.10 copiando um livro de receitas integrado inteiro para o repositório e, em seguida, modificando partes dele. Se fizer isso, você estará substituindo todo o livro de receitas integrado, incluindo as receitas. Se o OpsWorks Stacks atualizar esse livro de receitas, sua pilha não obterá os benefícios dessas atualizações, a menos que você atualize manualmente sua cópia privada. Para obter mais informações sobre como personalizar as pilhas, consulte [Personalizando pilhas OpsWorks](customizing.md).

## Utilização da pesquisa do Chef
<a name="workingcookbook-chef11-10-search"></a>

Você pode utilizar o método [http://docs.chef.io/dsl_recipe.html#search](http://docs.chef.io/dsl_recipe.html#search) do Chef em suas receitas para consultar os dados da pilha. Você usa a mesma sintaxe que usaria para o Chef Server, mas o OpsWorks Stacks obtém os dados do objeto do nó local em vez de consultar um servidor Chef. Esses dados incluem:
+ Os [atributos de configuração e implantação da pilha](workingstacks-json.md) da instância.
+ Os atributos dos arquivos de atributos dos livros de receitas integrados e personalizados da instância.
+ Os dados do sistema coletados pelo Ohai.

Os atributos de configuração e implantação da pilha contêm a maioria das informações que as receitas normalmente obtêm por meio da pesquisa, incluindo dados como nomes de host e endereços IP de cada instância on-line na pilha. OpsWorks As pilhas atualizam esses atributos para cada [evento do ciclo](workingcookbook-events.md) de vida, o que garante que eles reflitam com precisão o estado atual da pilha. Isso significa que você pode, muitas vezes, usar receitas da comunidade que sejam dependentes de pesquisa em sua pilha sem alterá-las. O método de pesquisa ainda retorna os dados apropriados; o que ocorre é que eles estão vindo dos atributos de configuração e implantação da pilha, em vez de um servidor.

A principal limitação da pesquisa de OpsWorks pilhas é que manipula somente os dados no objeto do nó local, em particular a configuração da pilha e os atributos de implantação. Por esse motivo, os seguintes tipos de dados podem não estar disponíveis por meio de pesquisa:
+ Atributos definidos localmente em outras instâncias.

  Se uma receita define um atributo localmente, essas informações não são reportadas ao serviço OpsWorks Stacks, então você não pode acessar esses dados de outras instâncias usando a pesquisa.
+ Atributos `deploy` personalizados.

  Você pode especificar um JSON personalizado quando [implanta um aplicativo](workingapps-deploying.md) e os atributos correspondentes são instalados nas instâncias da pilha para aquela implantação. No entanto, se você implantar apenas em instâncias selecionadas, os atributos são instalados apenas nessas instâncias. As consultas sobre esses atributos JSON personalizados falharão em todas as outras instâncias. Além disso, os atributos personalizados são incluídos no JSON de configuração e implantação da pilha apenas para essa implantação específica. Eles estarão acessíveis apenas até que o próximo evento de ciclo de vida instale um novo conjunto de atributos de configuração e implantação da pilha. Observe que quando você [especifica um JSON personalizado para a pilha](workingstacks-json.md), os atributos são instalados em cada instância para cada evento de ciclo de vida e estão sempre acessíveis por meio de pesquisa.
+ Dados do Ohai de outras instâncias.

  A [ferramenta Ohai](http://docs.chef.io/resource_ohai.html) do Chef obtém uma variedade de dados de sistema de uma instância e os adiciona ao objeto de nó. Esses dados são armazenados localmente e não são passados de volta ao serviço do OpsWorks Stacks, portanto a pesquisa não pode acessar os dados do Ohai a partir de outras instâncias. No entanto, alguns desses dados podem ser incluídos nos atributos de configuração e implantação da pilha.
+ Instâncias off-line.

  Os atributos de configuração e implantação da pilha somente contêm dados de instâncias online.

O trecho da receita a seguir mostra como obter o endereço IP privado de uma instância da camada de PHP usando a pesquisa. 

```
appserver = search(:node, "role:php-app").first
Chef::Log.info("The private IP is '#{appserver[:private_ip]}'")
```

**nota**  
Quando o OpsWorks Stacks adiciona os atributos de configuração e implantação da pilha ao objeto do nó, ele realmente cria dois conjuntos de atributos de camada, cada um com os mesmos dados. Um conjunto está no `layers` namespace, que é como o OpsWorks Stacks armazena os dados. O outro conjunto fica no namespace `role`, que é como o servidor Chef armazena os dados equivalentes. O objetivo do `role` namespace é permitir que o código de pesquisa que foi implementado para o Chef Server seja executado em uma instância do OpsWorks Stacks. Se você estiver escrevendo código especificamente para OpsWorks Stacks, poderá usar um `layers:php-app` ou `role:php-app` o exemplo anterior e `search` retornará o mesmo resultado.

## Utilização de recipientes de dados
<a name="workingcookbook-chef11-10-databag"></a>

Você pode usar o método [http://docs.chef.io/dsl_recipe.html#data-bag-item](http://docs.chef.io/dsl_recipe.html#data-bag-item) do Chef nas suas receitas para consultar informações em um recipiente de dados. A sintaxe usada é a mesma que você usaria para o servidor Chef, mas o OpsWorks Stacks obtém os dados dos atributos de configuração e implantação da pilha da instância. No entanto, o OpsWorks Stacks atualmente não oferece suporte aos ambientes do Chef, portanto, `node.chef_environment` sempre retorna`_default`.

Você pode criar um recipiente de dados usando um JSON personalizado para adicionar um ou mais atributos ao atributo `[:opsworks][:data_bags]`. O exemplo a seguir mostra o formato geral de criação de um recipiente de dados em um JSON personalizado.

**nota**  
Não é possível criar um recipiente de dados adicionando-o ao repositório de livros de receitas. Você deve usar um JSON personalizado.

```
{
  "opsworks": {
    "data_bags": {
      "bag_name1": {
        "item_name1: {
          "key1" : “value1”,
          "key2" : “value2”,
          ...
        }
      },
      "bag_name2": {
        "item_name1": {
          "key1" : “value1”,
          "key2" : “value2”,
          ...
        }
      },
      ...
    }
  }
}
```

Normalmente, você [especifica um JSON personalizado para a pilha](workingstacks-json.md), que instala os atributos personalizados em cada instância para cada evento de ciclo de vida subsequente. Você também pode especificar um JSON personalizado quando implanta um aplicativo, mas os atributos são instalados apenas para essa implantação e só podem ser instalados para um conjunto de instâncias selecionado. Para obter mais informações, consulte [Implementação de aplicativos](workingapps-deploying.md).

O seguinte exemplo de JSON personalizado cria um recipiente de dados chamado `myapp`. Ele possui um item `mysql` com dois pares de chave e valor.

```
{ "opsworks": {
    "data_bags": {
      "myapp": {
        "mysql": { 
          "username": "default-user",
          "password": "default-pass"
        }
      }
    }
  }
}
```

Para usar os dados em sua receita, você pode chamar o `data_bag_item` e passar para ele os nomes do recipiente de dados e do valor, como mostra o trecho a seguir.

```
mything = data_bag_item("myapp", "mysql")
Chef::Log.info("The username is '#{mything['username']}' ")
```

Para modificar os dados no recipiente de dados, basta modificar o JSON personalizado e ele será instalado nas instâncias da pilha para o próximo evento de ciclo de vida. 

## Utilização do Berkshelf
<a name="workingcookbook-chef11-10-berkshelf"></a>

Em pilhas do Chef 0.9 e Chef 11.4, você pode instalar apenas um repositório de livros de receitas personalizados. Em pilhas do Chef 11.10, você pode usar o [Berkshelf](http://berkshelf.com/) para gerenciar os livros de receitas e suas dependências, o que permite a você instalar livros de receitas de vários repositórios. (Para ter mais informações, consulte [Empacotar dependências do livro de receitas localmente](best-practices-packaging-cookbooks-locally.md).) Em particular, com o Berkshelf, você pode instalar livros de receitas da comunidade OpsWorks compatíveis com Stacks diretamente de seus repositórios, em vez de precisar copiá-los para seu repositório de livros de receitas personalizado. As versões compatíveis do Berkshelf dependem do sistema operacional. Para obter mais informações, consulte [OpsWorks Sistemas operacionais de pilha](workinginstances-os.md).

Para usar o Berkshelf, você deve habilitá-lo de forma explícita, conforme descrito em [Instalação de livros de receitas personalizados](workingcookbook-installingcustom-enable.md). Em seguida, inclua um arquivo `Berksfile` no diretório raiz do repositório do seu livro de receitas para especificar os livros de receitas a serem instalados. 

Para especificar a origem externa de um livros de receitas em um Berksfile, inclua um atributo de origem na parte superior do arquivo que especifica o URL do repositório padrão. A Berkshelf procurará os livros de receitas na fonte, a URLs menos que você especifique explicitamente um repositório. Em seguida, inclua uma linha para cada livro de receitas que você deseja instalar no seguinte formato: 

```
cookbook 'cookbook_name', ['>= cookbook_version'], [cookbook_options]
```

Os campos que vêm logo após `cookbook` especificam o livro de receitas específico.
+ *cookbook\$1name*— (Obrigatório) Especifica o nome do livro de receitas.

  Se você não incluir nenhum outro campo, a Berkshelf instala o livro de receitas a partir da fonte especificada. URLs
+ *cookbook\$1version*— (Opcional) Especifica a versão ou versões do livro de receitas.

  Você pode usar um prefixo como `=` ou `>=` para especificar uma versão específica ou um intervalo de versões aceitas. Se você não especificar uma versão, o Berkshelf instala a mais recente.
+ *cookbook\$1options*— (Opcional) O campo final é um hash contendo um ou mais pares de valores-chave que especificam opções como a localização do repositório.

  Por exemplo, você pode incluir uma chave `git` para designar um repositório Git específico e uma chave `tag` para designar uma ramificação específica do repositório. Especificar a ramificação do repositório é geralmente a melhor forma de garantir que você está instalando o livro de receitas de sua preferência.

**Importante**  
Não faça a declaração de livros de receitas incluindo uma linha de `metadata` em seu Berksfile ou incluindo a declaração das dependências do livro de receitas no `metadata.rb`. Para que isso funcione corretamente, ambos os arquivos devem estar no mesmo diretório. Com o OpsWorks Stacks, o Berksfile deve estar no diretório raiz do repositório, mas os `metadata.rb` arquivos devem estar em seus respectivos diretórios do livro de receitas. Em vez disso, você deve incluir as declarações explícitas dos livros de receitas externos no Berksfile.

Veja a seguir o exemplo de um Berksfile que mostra diferentes maneiras para especificar livros de receitas. Para obter mais informações sobre como criar um Berksfile, consulte [Berkshelf](http://berkshelf.com/).

```
source "https://supermarket.chef.io"

cookbook 'apt'
cookbook 'bluepill', '>= 2.3.1'
cookbook 'ark', git: 'git://github.com/opscode-cookbooks/ark.git'
cookbook 'build-essential', '>= 1.4.2', git: 'git://github.com/opscode-cookbooks/build-essential.git', tag: 'v1.4.2'
```

Este arquivo instala os seguintes livros de receitas:
+ A versão mais recente do `apt` do repositório de livros de receitas da comunidade.
+ A versão mais recente do `bluepill` dos livros de receitas da comunidade, desde que seja a versão 2.3.1 ou posterior.
+ A versão mais recente do `ark` de um repositório especificado.

  A URL deste exemplo é para um repositório público de livros de receitas da comunidade em GitHub, mas você pode instalar livros de receitas de outros repositórios, incluindo repositórios privados. Para obter mais informações, consulte [Berkshelf](http://berkshelf.com/).
+ O livro de receitas `build-essential` da ramificação v1.4.2 do repositório especificado.

Um repositório de livros de receitas personalizados pode conter livros de receitas personalizados, além de um Berksfile. Nesse caso, o OpsWorks Stacks instala os dois conjuntos de livros de receitas, o que significa que uma instância pode ter até três repositórios de livros de receitas. 
+ Os livros de receitas integrados são instalados em `/opt/aws/opsworks/current/cookbooks`.
+ Se o seu repositório de livros de receitas personalizados contém livros de receitas, eles estão instalados em `/opt/aws/opsworks/current/site-cookbooks`.
+ Se você habilitou o Berkshelf e seu repositório de livros de receitas personalizados contém um Berksfile, os livros de receitas especificados são instalados em `/opt/aws/opsworks/current/berkshelf-cookbooks`.

Os livros de receitas integrados e seus livros de receitas personalizados são instalados em cada instância durante a configuração e não são atualizados posteriormente, a menos que você execute manualmente o comando [**Atualizar pilha de livros de receitas personalizados**](workingstacks-commands.md). OpsWorks As pilhas são `berks install` executadas a cada execução do Chef, então seus livros de receitas da Berkshelf são atualizados para cada [evento do ciclo](workingcookbook-events.md) de vida, de acordo com as seguintes regras: 
+ Se você tiver uma nova versão de um livro de receitas no repositório, esta operação atualiza o livro de receitas do repositório.
+ Caso contrário, essa operação atualiza os livros de receitas do Berkshelf de um cache local.

**nota**  
A operação sobrescreve os livros de receitas do Berkshelf e, portanto, se você tiver modificado as cópias locais de quaisquer livros de receitas, essas alterações serão sobrescritas. Para obter mais informações, consulte [Berkshelf](http://berkshelf.com/)

Você também pode atualizar seus livros de receitas do Berkshelf executando o comando da pilha**Update Custom Cookbooks**, que atualiza ambos os livros de receitas do Berkshelf e personalizados.

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

# Migração de uma pilha existente do Linux para uma nova versão do Chef
<a name="workingcookbook-chef11-migrate"></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).

Você pode usar o console, a API ou a CLI do OpsWorks Stacks para migrar suas pilhas do Linux para uma versão mais recente do Chef. No entanto, pode ser necessário modificar suas receitas para que sejam compatíveis com a versão mais recente. Durante a preparação para a migração de uma pilha, considere o seguinte.
+ Você não pode alterar as versões da OpsWorks pilha de pilhas do Chef 11 para o Chef 12 editando ou clonando a pilha. A atualização de uma versão principal do Chef não pode ser executada usando os procedimentos desta seção. Para obter mais informações sobre a transição do Chef 11.10 para o Chef 12, consulte [Implementação de receitas: Chef 12](workingcookbook-chef12-linux.md).
+ A transição de uma versão do Chef para outra envolve uma série de alterações, e algumas delas são alterações interruptivas.

  Para obter mais informações sobre a transição do Chef 0.9 para o Chef 11.4, consulte [Migração para uma nova versão do Chef](#workingcookbook-chef11-migrate). Para obter mais informações sobre a transição do Chef 11.4 para o Chef 11.10, consulte [Implementação de receitas: Chef 11.10](workingcookbook-chef11-10.md). Para obter mais informações sobre a transição do Chef 11.10 para o Chef 12, consulte [Implementação de receitas: Chef 12](workingcookbook-chef12-linux.md).
+ As execuções do Chef usam versões diferentes do Ruby nas pilhas do Chef 0.9 e Chef 11.4 (Ruby 1.8.7), do Chef 11.10 (Ruby 2.0.0) e do Chef 12 (Ruby 2.1.6).

  Para obter mais informações, consulte [Versões do Ruby](workingcookbook-ruby.md).
+ As pilhas do Chef 11.10 lidam com a instalação de livros de receitas de forma diferente das pilhas do Chef 0.9 ou do Chef 11.4.

  Essa diferença pode causar problemas durante a migração de pilhas que usam livros de receitas personalizados para o Chef 11.10. Para obter mais informações, consulte [Instalação e precedência em livros de receitas](workingcookbook-chef11-10.md#workingcookbook-chef11-10-override).

 Veja a seguir as diretrizes recomendadas para a migração de uma pilha do Chef para uma versão mais recente do Chef:

**Para migrar uma pilha para uma versão mais recente do Chef**

1. [Faça a clonagem da sua pilha de produção](workingstacks-cloning.md). Na página **Clone Stack**, clique em **Advanced>>** para exibir a seção **Configuration Management**, e mude **Chef version** para a próxima versão mais recente.
**nota**  
Se você estiver começando de uma pilha do Chef 0.9, não poderá fazer upgrade diretamente para o Chef 11.10. Primeiro, será necessário fazer upgrade para o Chef 11.4. Se quiser migrar sua pilha para o Chef 11.10 antes de testar suas receitas, aguarde 20 minutos para que a atualização seja executada e, em seguida, atualize a pilha de 11.4 para 11.10.

1. Adicione instâncias às camadas e teste os aplicativos e livros de receitas da pilha clonada em um sistema de teste ou de preparação. Para mais informações, consulte [Tudo sobre o Chef ...](https://docs.chef.io/index.html).

1. Quando os resultados dos testes forem satisfatórios, faça o seguinte:
   + Se esta for a versão desejada do Chef, você pode usar a pilha clonada como sua pilha de produção ou redefinir a versão do Chef em sua pilha de produção. 
   + Se você estiver fazendo a migração do Chef 0.9 para o Chef 11.10 em duas etapas, repita o processo para migrar a pilha do Chef 11.4 para o Chef 11.10.

**nota**  
Quando você está testando receitas, pode [usar o SSH para se conectar à](workinginstances-ssh.md) instância e, em seguida, usar o comando da [CLI do agente da instância](agent.md) [run\$1command](agent-run.md) para executar as receitas associadas aos vários eventos de ciclo de vida. A CLI do agente é especialmente útil para testar o Configurar receitas, pois você pode usá-la até mesmo quando a configuração falha e a instância não atinge o estado online. Você também pode usar o [comando Configurar pilha](workingstacks-commands.md) para executar novamente o comando Configurar receitas, mas esse comando só estará disponível se a configuração tiver êxito e a instância estiver online. 

É possível atualizar uma pilha em execução para uma nova versão do Chef.

**Para atualizar uma pilha em execução para uma nova versão do Chef**

1. [Edite a pilha](workingstacks-edit.md) para alterar a configuração **Chef version** dela.

1. Salve as novas configurações e espere que as OpsWorks pilhas atualizem as instâncias, o que normalmente leva de 15 a 20 minutos.

**Importante**  
OpsWorks O Stacks não sincroniza a atualização da versão do Chef com os eventos do ciclo de vida. Se você deseja atualizar a versão do Chef em uma pilha de produção, deve tomar cuidado para garantir que a atualização seja concluída antes que o próximo [evento de ciclo de vida](workingcookbook-events.md) ocorra. Quando ocorre um evento, normalmente um evento de configuração ou implantação, o agente da instância atualiza os livros de receitas personalizados e executa as receitas atribuídas a esse evento, esteja a atualização de versão concluída ou não. Não há uma maneira direta de se determinar quando uma atualização de versão está concluída, mas os logs de implantação incluem a versão do Chef.

# Versões do Ruby
<a name="workingcookbook-ruby"></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).

Todas as instâncias em uma pilha Linux têm o Ruby instalado. OpsWorks O Stacks instala um pacote Ruby em cada instância, que é usado para executar as receitas do Chef e o agente da instância. OpsWorks As pilhas determinam a versão do Ruby com base na versão do Chef em que a pilha está sendo executada. Não tente alterar essa versão, do contrário, o agente da instância pode ser desativado.

OpsWorks O Stacks não instala um aplicativo executável Ruby nas pilhas do Windows. O cliente Chef 12.2 vem com o Ruby 2.0.0 p451, porém o executável Ruby não é acrescentado à variável de ambiente PATH das instâncias. Caso queira usar este executável para executar o código Ruby, ele está localizado em `\opscode\chef\embedded\bin\ruby.exe` no drive do Windows.

A tabela a seguir resume as versões do OpsWorks Stacks Ruby. As versões do Ruby dos aplicativos disponíveis também dependem dos sistemas operacionais da instância. Para obter mais informações, incluindo as versões de patch disponíveis, consulte [OpsWorks Sistemas operacionais de pilha](workinginstances-os.md).


| Versão do Chef | Versão Ruby do Chef | Versões Ruby dos aplicativos disponíveis | 
| --- | --- | --- | 
| 0.9 (c) | 1.8.7 | 1.8.7(a), 1.9.3(e), 2.0.0 | 
| 11.4 (c) | 1.8.7 | 1.8.7(a), 1.9.3(e), 2.0.0, 2.1, 2.2.0, 2.3 | 
| 11.10 | 2.0.0-p481 | 1.9.3(c, e), 2.0.0, 2.1, 2.2.0, 2.3, 2.6.1 | 
| 12 (b) | 2.1.6, 2.2.3 | Nenhum | 
| 12.22 (d) | 2.3.6 | Nenhum | 

**(a)** Não disponível para Amazon Linux 2014.09 e posterior, Red Hat Enterprise Linux (RHEL) ou Ubuntu 14.04 LTS.

**(b)** Disponíveis apenas em stacks do Linux.

**(c)** Não disponível para RHEL.

**(d)** Disponíveis apenas em stacks do Windows. A versão principal é 12.2. A versão atual secundária é 12.22.

Substituição **(e)** concluída; o suporte terminou.

Os locais de instalação dependem da versão do Chef:
+ Os aplicativos usam o executável `/usr/local/bin/ruby` para todas as versões do Chef.
+ Para o Chef 0.9 e 11.4, o agente de instância e as receitas do Chef usam o executável `/usr/bin/ruby`.
+ Para o Chef 11.10, o agente de instância e as receitas do Chef usam o executável `/opt/aws/opsworks/local/bin/ruby`. 

# Instalação de livros de receitas personalizados
<a name="workingcookbook-installingcustom-enable"></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).

Para fazer com que uma pilha instale e use livros de receitas personalizados, você deve configurar a pilha para permitir os livros de receitas personalizados, se isso ainda não estiver configurado. Você deve fornecer o URL do repositório e quaisquer informações relacionadas, como uma senha.

**Importante**  
Depois de configurar a pilha para oferecer suporte a livros de receitas personalizados, o OpsWorks Stacks instala automaticamente seus livros de receitas em todas as novas instâncias na inicialização. No entanto, você deve orientar explicitamente o OpsWorks Stacks a instalar livros de receitas novos ou atualizados em qualquer instância existente executando o comando [**Atualizar pilha de livros de receitas personalizados**](workingstacks-commands.md). Para obter mais informações, consulte [Atualizar livros de receitas personalizadas](workingcookbook-installingcustom-enable-update.md). Antes de permitir **Use custom Chef cookbooks (Usar livros de receitas do Chef personalizados)** na sua pilha, certifique-se de que os livros de receitas personalizados e de comunidade que você executa têm suporte para a versão do Chef que sua pilha utiliza.

**Para configurar uma pilha para livros de receitas personalizados**

1. Na página da pilha, clique em **Stack Settings** para exibir a página **Settings**. Clique em **Edit** para editar as configurações.

1. Alterne **Use custom Chef cookbooks** para **Yes**.  
![\[Edição da página de configurações de pilha\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/stack_settings_edit.png)

1. Configuração dos livros de receitas.

Quando terminar, clique em **Save** para salvar a pilha atualizada. 

## Especificação de um repositório de livro de receitas personalizado
<a name="workingcookbook-installingcustom-enable-repo"></a>

As pilhas do Linux podem instalar livros de receitas personalizados de qualquer um dos seguintes tipos de repositório:
+ Arquivos HTTP ou Amazon S3.

  Eles podem ser públicos ou privados, mas o Amazon S3 costuma ser a opção preferida para um arquivo privado. 
+ Os repositórios Git e Subversion fornecem controle de origem e a capacidade de ter várias versões.

As pilhas do Windows podem instalar livros de receitas personalizados de arquivos do Amazon S3 e de repositórios Git.

Todos os tipos de repositório têm os seguintes campos obrigatórios.
+ **Tipo de repositório**: o tipo de repositório
+ **URL de repositório**: o URL do repositório

OpsWorks O Stacks oferece suporte a sites de repositórios Git hospedados publicamente, como o Bitbucket, [GitHub](https://github.com/)bem como a [servidores](https://bitbucket.org) Git hospedados de forma privada. Para os repositórios Git, você deve usar um dos seguintes formatos de URL, dependendo se o repositório é público ou privado. Siga as mesmas diretrizes de URL para os submódulos do Git.

Para um repositório público Git, use os protocolos HTTPS ou somente leitura do Git:
+ Somente leitura do Git: `git://github.com/amazonwebservices/opsworks-example-cookbooks.git`.
+ HTTPS: `https://github.com/amazonwebservices/opsworks-example-cookbooks.git`.

Para um repositório Git privado, você deve usar o read/write formato SSH, conforme mostrado nos exemplos a seguir:
+ Repositórios Github: `git@github.com:project/repository`.
+ Repositórios em um servidor Git: `user@server:project/repository`

As configurações restantes variam de acordo com o tipo de repositório e estão descritas nas seções a seguir.

### Arquivo HTTP
<a name="workingcookbook-installingcustom-enable-repo-http"></a>

Selecionar **Http Archive** para **Repository type** exibe duas configurações adicionais, que você deve completar se o arquivo for protegido por senha.
+ **Nome de usuário**: seu nome de usuário
+ **Senha**: sua senha

### Arquivo do Amazon S3
<a name="workingcookbook-installingcustom-enable-repo-s3"></a>

Selecionar **S3 Archive (Arquivamento do S3)** para **Repository type (Tipo de repositório)** exibe as seguintes configurações adicionais e opcionais. OpsWorks As pilhas podem acessar seu repositório usando as EC2 funções da Amazon (autenticação do gerenciador do sistema operacional do host), independentemente de você usar a API do OpsWorks Stacks ou o console.
+ **ID da chave de acesso** — uma ID da chave de acesso da AWS, comoAKIAIOSFODNN7EXAMPLE.
+ **Chave de acesso secreta** — A chave de acesso secreta correspondente da AWS, comowJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

### Repositório Git
<a name="workingcookbook-installingcustom-enable-repo-git"></a>

Ao selecionar **Git** em **Source Control**, estas configurações opcionais adicionais são exibidas:

**Chave SSH de repositório**  
Você deve especificar uma chave SSH de implantação para acessar os repositórios Git privados. Para submódulos do Git, a chave especificada deve ter acesso a esses submódulos. Para obter mais informações, consulte [Utilização de chaves SSH de repositório Git](workingapps-deploykeys.md).  
A chave SSH de implantação não pode exigir uma senha; o OpsWorks Stacks não tem como passá-la.

**Ramificação/Revisão**  
Se o repositório tiver várias ramificações, o OpsWorks Stacks baixa a ramificação master por padrão. Para especificar uma ramificação específica, insira o nome da ramificação, o SHA1 hash ou o nome da tag. Para especificar uma determinada confirmação, insira o ID completo de confirmação com 40 dígitos hexadecimais.

### Repositório Subversion
<a name="workingcookbook-installingcustom-enable-repo-svn"></a>

Ao selecionar **Subversion** em **Source Control**, estas configurações adicionais são exibidas:
+ **Nome de usuário**: seu nome de usuário, para repositórios privados.
+ **Senha**: sua senha, para repositórios privados.
+ **Revisão**: [opcional] o nome da revisão, se você tiver várias revisões.

  Para especificar uma ramificação ou uma tag, você deve modificar o URL do repositório, por exemplo: **http://repository\$1domain/repos/myapp/branches/my-apps-branch** ou **http://repository\$1domain\$1name/repos/calc/myapp/my-apps-tag**.

# Atualizar livros de receitas personalizadas
<a name="workingcookbook-installingcustom-enable-update"></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).

Quando você fornece livros de receitas personalizados ao OpsWorks Stacks, as receitas de configuração integradas criam um cache local em cada instância recém-iniciada e baixam os livros de receitas para o cache. OpsWorks Em seguida, o Stacks executa as receitas do cache, não do repositório. Se você modificar os livros de receitas personalizados no repositório, deverá garantir que os livros de receitas atualizados sejam instalados nos caches locais de suas instâncias. OpsWorks O Stacks implanta automaticamente os livros de receitas mais recentes em novas instâncias quando elas são iniciadas. Entretanto, para as instâncias atuais a situação é diferente: 
+ Você deve implantar manualmente livros de receitas personalizadas atualizados para instâncias online.
+ Não é necessário implantar livros de receitas personalizadas atualizados com base em instâncias com armazenamento em instâncias offline, incluindo instâncias com base em carga e tempo.

  OpsWorks O Stacks implanta automaticamente os livros de receitas atuais quando as instâncias são reiniciadas. 
+ Você deve iniciar instâncias 24 horas por dia, 7 dias por semana offline baseadas no EBS, sem base em carga ou tempo.
+ Você não pode iniciar instâncias offline baseadas no EBS com base em carga e tempo, então a abordagem mais simples é excluir as instâncias offline e adicionar novas instâncias para substitui-las.

  Como agora são novas instâncias, o OpsWorks Stacks implanta automaticamente os livros de receitas personalizados atuais quando as instâncias são iniciadas.

**Para atualizar manualmente os livros de receitas personalizados**

1. Atualize seu repositório com os livros de receitas modificados. OpsWorks O Stacks usa o URL de cache que você forneceu quando instalou originalmente os livros de receitas, portanto, o nome do arquivo raiz do livro de receitas, a localização do repositório e os direitos de acesso não devem ser alterados. 
   + Para os repositórios Amazon S3 ou HTTP, substitua o arquivo .zip original pelo novo com o mesmo nome.
   + Para repositórios Git ou de Subversão, [edite as configurações de pilha](workingstacks-edit.md) a fim de alterar o campo **Branch/Revision** para a nova versão.

1. Na página de pilha, clique em **Run Command** e selecione o comando **Update Custom Cookbooks**.  
![\[Página Executar comando\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/update_cookbooks.png)

1. Adicione um comentário, se desejar.

1. Opcionalmente, especifique um objeto JSON personalizado para o comando para adicionar atributos personalizados à configuração da pilha e aos atributos de implantação que o OpsWorks Stacks instala nas instâncias. Para obter mais informações, consulte [Usar JSON personalizado](workingstacks-json.md) e [Sobrepor atributos](workingcookbook-attributes.md).

1. Por padrão, o OpsWorks Stacks atualiza os livros de receitas em todas as instâncias. Para especificar quais instâncias devem ser atualizadas, selecione as instâncias adequadas da lista no fim da página. Para selecionar cada instância em uma camada, marque a caixa de seleção da camada adequada na coluna esquerda.

1. Clique em **Atualizar livros de receitas personalizados** para instalar os livros de receitas atualizados. OpsWorks O Stacks exclui os livros de receitas personalizados em cache nas instâncias especificadas e instala os novos livros de receitas do repositório.

**nota**  
Esse procedimento é necessário somente para instâncias atuais com versões antigas dos livros de receitas em cache. Se você posteriormente adicionar instâncias a uma camada, o OpsWorks Stacks implanta os livros de receitas que estão atualmente no repositório para que eles obtenham automaticamente a versão mais recente.

# Execução de receitas
<a name="workingcookbook-executing"></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).

Você pode executar receitas de duas formas:
+ Automaticamente, atribuindo receitas ao evento de ciclo de vida apropriado da camada.
+ Manualmente, executando o [comando de pilha Execute Recipes](workingstacks-commands.md) ou usando a CLI de agente.

**Topics**
+ [OpsWorks Eventos do ciclo de vida do Stacks](workingcookbook-events.md)
+ [Execução automática de receitas](workingcookbook-assigningcustom.md)
+ [Execução manual de receitas](workingcookbook-manual.md)

# OpsWorks Eventos do ciclo de vida do Stacks
<a name="workingcookbook-events"></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).

Cada camada tem um conjunto de cinco eventos de ciclo de vida, sendo que cada um tem um conjunto associado de receitas específicas para a camada. Quando ocorre um evento na instância de uma camada, o OpsWorks Stacks executa automaticamente o conjunto de receitas adequado. Para fornecer uma resposta personalizada a esses eventos, implemente receitas personalizadas e [atribua-as aos eventos apropriados](workingcookbook-assigningcustom.md) para cada camada. OpsWorks O Stacks executa essas receitas de acordo com as receitas integradas do evento.

**Setup**  
Esse evento ocorre após uma instância iniciada concluir a inicialização. Você também pode acionar manualmente o Setup evento usando o [comando Setup stack](workingstacks-commands.md). OpsWorks O Stacks executa receitas que configuram a instância de acordo com sua camada. Por exemplo, se a instância for membro do camada do Rails App Server, as receitas Setup vão instalar Apache, Ruby Enterprise Edition, Passenger e Ruby on Rails.  
Um evento **Setup** pega uma instância fora de serviço. Como uma instância não está no estado **Online** quando o evento de ciclo de vida **Setup** é executado, as instâncias em que você executa eventos **Setup** são removidas de um load balancer.

**Configure**  
Esse evento ocorre em todas as instâncias da pilha quando um dos seguintes ocorre:  
+ Uma instância entra ou sai do estado online.
+ Você [associa um endereço IP elástico](resources-attach.md#resources-attach-eip) a uma instância ou [desassocia um de uma instância](resources-detach.md#resources-detach-eip).
+ Você [anexa um balanceador de carga do Elastic Load Balancing](layers-elb.md) a uma camada ou o desanexa de uma camada.
Por exemplo, suponha que sua pilha tenha instâncias A, B e C e você inicie uma nova instância, D. Depois que D terminar de executar suas receitas de configuração, o OpsWorks Stacks aciona o Configure evento em A, B, C e D. Se você posteriormente interromper A, OpsWorks Stacks acionará o Configure evento em B, C e D. OpsWorks Stacks responde ao Configure evento executando as Configure receitas de cada camada, que atualizam a configuração das instâncias para refletir a configuração atual conjunto de instâncias on-line. O evento Configure é, portanto, um bom momento para gerar novamente os arquivos de configuração. Por exemplo, as HAProxy Configure receitas reconfiguram o balanceador de carga para acomodar quaisquer alterações no conjunto de instâncias do servidor de aplicativos on-line.  
Você também pode acionar manualmente o evento Configure usando o [comando de pilha Configure](workingstacks-commands.md).

**Deploy**  
Esse evento ocorre quando você executa um comando **Deploy**, normalmente para implantar um aplicativo a um conjunto de instâncias do servidor de aplicativos. As instâncias executam receitas que implantam a aplicação e quaisquer arquivos relacionados de seu repositório para as instâncias da camada. Por exemplo, para instâncias de um servidor de aplicativos do Rails, as receitas Deploy verificam um aplicativo Ruby determinado e falam para o [Phusion Passenger ](https://www.phusionpassenger.com/) recarregá-lo. Você também pode executar Deploy em outras instâncias para que elas possam, por exemplo, atualizar a configuração delas para acomodar a aplicação recém-implantada.  
Setup inclui Deploy; ele executa as receitas de implantação após a conclusão da instalação.

**Undeploy**  
Esse evento ocorre quando você exclui um aplicativo ou executa um comando Undeploy para remover um aplicativo de um conjunto de instâncias do servidor de aplicativos. As instâncias especificadas executam receitas para remover todas as versões da aplicação e executar qualquer limpeza necessária.

**Shutdown**  
Esse evento ocorre depois que você orienta o OpsWorks Stacks a encerrar uma instância, mas antes que a EC2 instância Amazon associada seja realmente encerrada. OpsWorks O Stacks executa receitas para executar tarefas de limpeza, como desligamento de serviços.  
 Se você conectou um balanceador de carga do Elastic Load Balancing à camada e [habilitou o suporte para drenagem da conexão, o OpsWorks Stacks espera até que a drenagem](layers-elb.md) da conexão seja concluída antes de acionar o evento. Shutdown  
Depois de acionar um Shutdown evento, o OpsWorks Stacks permite às Shutdown receitas um determinado período de tempo para realizar suas tarefas e, em seguida, interrompe ou encerra a instância da Amazon. EC2 O valor de tempo limite de Shutdown padrão é 120 segundos. Se suas receitas Shutdown exigirem mais tempo, você poderá [editar a configuração da camada](workinglayers-basics-edit.md#workinglayers-basics-edit-general) para alterar o valor do tempo limite. Para obter mais informações sobre instâncias Shutdown, consulte [Interromper uma instância](workinginstances-starting.md#workinginstances-starting-stop).

**nota**  
[A reinicialização de uma instância](workinginstances-starting.md#workinginstances-starting-reboot) não aciona eventos de ciclo de vida.

Para mais discussões sobre os comandos de aplicativo Deploy e Undeploy, consulte [Implementação de aplicativos](workingapps-deploying.md). 

Após uma instância iniciada concluir a inicialização, a sequência de inicialização restante é a seguinte:

1. OpsWorks O Stacks executa as Setup receitas integradas da instância, seguidas por qualquer Setup receita personalizada.

1. OpsWorks O Stacks executa as Deploy receitas integradas da instância, seguidas por qualquer Deploy receita personalizada.

   A instância agora está online.

1. OpsWorks As pilhas acionam um Configure evento em todas as instâncias da pilha, incluindo a instância recém-iniciada.

   OpsWorks O Stacks executa as Configure receitas integradas das instâncias, seguidas por qualquer receita personalizada. Configure

**nota**  
Para ver os eventos de ciclo de vida que ocorreram em uma instância específica, vá para a página **Instances** e clique no nome da instância para abrir sua página de detalhes. A lista de eventos fica na seção **Logs**, na parte inferior da página. Você pode clicar em **show** na coluna **Log** para examinar o log do Chef para um evento. Isso fornece informações detalhadas sobre como o evento foi tratado, incluindo quais receitas foram executadas. Para obter mais informações sobre como interpretar os logs do Chef, consulte [Logs do Chef](troubleshoot-debug-log.md).

![\[Log entries showing commands, timestamps, and durations for system operations.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/instance_logs.png)


Para cada evento do ciclo de vida, o OpsWorks Stacks instala um conjunto de [atributos de configuração e implantação da pilha](workingcookbook-json.md) em cada instância que contém o estado atual da pilha e, para Deploy eventos, informações sobre a implantação. Os atributos incluem informações sobre quais instâncias estão disponíveis, seus endereços IP, e assim por diante. Para obter mais informações, consulte [Configuração de pilha e atributos de implantação](workingcookbook-json.md).

**nota**  
Iniciar ou interromper um grande número de instâncias ao mesmo tempo pode gerar rapidamente um grande número de eventos Configure. Para evitar processamento desnecessário, o OpsWorks Stacks responde somente ao último evento. Os atributos de implantação e configuração de stack desse evento contêm todas as informações necessárias para atualizar as instâncias da pilha para todo o conjunto de alterações. Isso elimina a necessidade de também processar os Configure eventos anteriores. OpsWorks **As pilhas rotulam os Configure eventos não processados como substituídos.**

# Execução automática de receitas
<a name="workingcookbook-assigningcustom"></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).

Cada camada tem um conjunto de receitas integradas atribuídas a cada evento de ciclo de vida, embora algumas camadas não tenham receitas Undeploy. Quando ocorre um evento de ciclo de vida em uma instância, o OpsWorks Stacks executa o conjunto apropriado de receitas para a camada associada.

Se você instalou livros de receitas personalizados, pode fazer com que o OpsWorks Stacks execute algumas ou todas as receitas automaticamente atribuindo cada receita ao evento de ciclo de vida de uma camada. Depois que um evento ocorre, o OpsWorks Stacks executa as receitas personalizadas especificadas após as receitas integradas da camada. 

**Para atribuir receitas personalizadas a eventos de camada**

1. Na página **Layers**, para a camada apropriada, clique em **Recipes** e, em seguida, em **Edit**. Se você ainda não tiver habilitado livros de receitas personalizados, clique em **configurar cookbooks** para abrir a página **Settings** da pilha. Alterne **Use custom Chef Cookbooks** para **Yes**, e forneça as informações do repositório do livro de receitas. Em seguida, clique em **Save** e navegue até a página de edição da guia **Recipes**. Para obter mais informações, consulte [Instalação de livros de receitas personalizados](workingcookbook-installingcustom-enable.md).

1. Na guia **Recipes**, insira cada receita personalizada no campo de evento adequado e clique em **\$1** para adicioná-la à lista. Especifique uma receita da seguinte forma*cookbook*::: *somerecipe* (omita a `.rb` extensão).   
![\[Página de detalhes da camada\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/php_edit.png)

Quando você inicia uma nova instância, o OpsWorks Stacks executa automaticamente as receitas personalizadas para cada evento, depois de executar as receitas padrão.

**nota**  
As receitas personalizadas são executadas na ordem que você as insere no console. Uma maneira alternativa de controlar a ordem de execução é implementando uma meta receita que executa as receitas na ordem correta.

# Execução manual de receitas
<a name="workingcookbook-manual"></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).

Embora as receitas costumem ser executadas automaticamente em resposta a eventos de ciclo de vida, você pode executá-las manualmente a qualquer momento em uma ou todas as instâncias da pilha. Esse recurso costuma ser usado para tarefas que não mapeiam bem a um evento de ciclo de vida, como o backup de instâncias. Para executar manualmente uma receita personalizada, ela deve estar em um de seus livros de receitas personalizados, mas não precisa ser atribuída a um evento de ciclo de vida. Quando você executa uma receita manualmente, o OpsWorks Stacks instala os mesmos `deploy` atributos de um evento Deploy.

**Para executar manualmente as receitas em instâncias da pilha**

1. Na página **Stack**, clique em **Run command**. Para **Command**, selecione **Execute Recipes**.  
![\[Execute o comando Recipe na página de comando Run\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/execute_recipe.png)

1. Insira as receitas a serem executadas na caixa **Receitas a serem executadas** usando o *recipename* formato padrão*cookbookname*::. Use vírgulas para separar várias receitas, que serão executadas na ordem em que são listadas.

1. Como opção, use a caixa **Custom Chef JSON** para adicionar um objeto JSON personalizado que define atributos personalizados que serão incorporados aos atributos de implantação e configuração de pilha que são instalados nas instâncias. Para obter mais informações sobre o uso de objetos JSON personalizados, consulte [Usar JSON personalizado](workingstacks-json.md) e [Sobrepor atributos](workingcookbook-attributes.md).

1. Em **Instâncias**, selecione as instâncias nas quais OpsWorks as pilhas devem executar as receitas. 

Quando ocorre um evento de ciclo de vida, o agente OpsWorks Stacks recebe um comando para executar as receitas associadas. Você pode executar manualmente esses comandos em uma instância específica usando o [comando de pilha](workingstacks-commands.md) adequado ou usando o comando [run\$1command](agent-run.md) da CLI do agente. Para obter mais informações sobre como usar a CLI do agente, consulte [OpsWorks CLI do Stacks Agent](agent.md).