

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

# Usando índices de pesquisa OpsWorks específicos de pilhas no Windows Stacks
<a name="cookbooks-101-opsworks-opsworks-stack-config-search-opsworks"></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).

**nota**  
Este exemplo supõe que você já tenha concluído o exemplo em [Executar uma receita na instância Windows](cookbooks-101-opsworks-opsworks-windows.md). Caso contrário, conclua esse exemplo primeiro. Especificamente, ele descreve como habilitar o acesso RDP para suas instâncias.

OpsWorks O Stacks fornece os seguintes índices de pesquisa, além de: `node` 
+ `aws_opsworks_stack`: configuração da pilha.
+ `aws_opsworks_layer`: as configurações de camada da pilha.
+ `aws_opsworks_instance`: as configurações de instância da pilha.
+ `aws_opsworks_app`: as configurações do aplicativo da pilha.
+ `aws_opsworks_user`: as configurações de usuário da pilha.
+ `aws_opsworks_rds_db_instance`: as informações de conexão para instâncias RDS registradas.

Esses índices incluem alguns atributos padrão do Chef, mas são destinados principalmente à recuperação de atributos específicos do OpsWorks Stacks. Por exemplo, `aws_opsworks_instance` inclui um atributo `status` que fornece o status da instância, como `online`. 

**nota**  
Recomenda-se usar `node` quando possível para manter suas receitas consistentes com o uso padrão do Chef. Para ver um exemplo, consulte [Usar o índice de pesquisa de nó em pilhas do Windows](cookbooks-101-opsworks-opsworks-stack-config-search-node.md).

Este exemplo mostra como usar os índices do OpsWorks Stacks para recuperar o valor de um OpsWorks atributo específico do Stacks. Ele é baseado em uma pilha simples do Windows com uma camada personalizada que tem uma instância. Ele usa a pesquisa do Chef para obter o ID de OpsWorks pilhas da instância e coloca os resultados no registro do Chef.

As instruções a seguir resumem o procedimento da criação de uma pilha neste exemplo. Para obter mais informações, consulte [Criar uma nova pilha](workingstacks-creating.md).

**Criar uma pilha**

1. Abra o [console do OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) e selecione **\$1 Stack (\$1 pilha)**. Especifique as seguintes configurações, aceite os padrões para as outras configurações e escolha **Add Stack**.
   + **Nome** — IDSearch
   + **Região**: Oeste dos EUA (Oregon)

     Este exemplo funcionará em qualquer região, mas recomendamos o uso de Oeste dos EUA (Oregon) para tutoriais.
   + **Sistema operacional padrão**: Microsoft Windows Server 2012 R2

1. Clique em **Add a layer** e [adicione uma camada personalizada à pilha](workinglayers-custom.md) com as seguintes configurações.
   + **Nome** — IDCheck
   + **Nome curto**: idcheck

1. [Adicione uma instância t2.micro 24 horas por dia, 7 dias](workinginstances-add.md) [por semana, com configurações padrão na IDCheck camada e inicie-a.](workinginstances-starting.md) Ela será chamada iptest1.

   OpsWorks As pilhas são atribuídas automaticamente `AWS-OpsWorks-RDP-Server` a essa instância. [Habilitar o acesso ao RDP](cookbooks-101-opsworks-opsworks-windows.md#cookbooks-101-opsworks-opsworks-windows-rdp)explica como adicionar uma regra de entrada a esse grupo de segurança que permite que usuários autorizados façam login na instância.

1. Escolha **Permissions** e, em seguida, **Edit**, **SSH/RDP** e **sudo/admin**. Os usuários frequentes precisam dessa autorização além do grupo de segurança `AWS-OpsWorks-RDP-Server` para fazer login na instância. 
**nota**  
É possível também fazer login como administrador, mas isso requer um procedimento diferente. Para obter mais informações, consulte [Login com RDP](workinginstances-rdp.md).

**Para configurar o livro de receitas**

1. Crie um diretório chamado `idcheck` e navegue até ele.

1. Crie um arquivo `metadata.rb` com o seguinte conteúdo e salve-o em `opstest`.

   ```
   name "idcheck"
   version "0.1.0"
   ```

1. Crie um diretório `recipes` em `idcheck` e adicione um arquivo `default.rb` ao diretório que contém a seguinte receita.

   ```
   windowsserver = search(:aws_opsworks_instance, "hostname:idcheck*").first
   Chef::Log.info("**********The public IP address is: '#{windowsserver[:instance_id]}'**********")
   ```

   A receita usa a pesquisa do Chef com um índice de pesquisa `aws_opsworks_instance` para obter os [atributos da instância](data-bag-json-instance.md) de cada instância na pilha com um nome de host que começa com `idcheck`. Se você usar o tema padrão, que cria nomes de host anexando números inteiros ao nome curto da camada, essa consulta retornará todas as instâncias na camada. IDCheck Como a camada tem somente uma instância, a receita atribui a primeira a `windowsserver`. Para várias instâncias, você pode obter a lista completa e, em seguida, enumerá-las.

   A receita aproveita o fato de que há somente uma instância na pilha com esse nome de host, portanto, o primeiro resultado é o correto. Caso sua pilha tenha várias instâncias, uma pesquisa em outros atributos pode retornar mais de um resultado. Para obter uma lista de atributos de instância, consulte [Data bag da instância (aws\$1opsworks\$1instance)](data-bag-json-instance.md).

   Os atributos da instância são basicamente uma tabela de hash, e o OpsWorks Stacks ID da instância é atribuído ao `instance_id` atributo, então você pode se referir ao ID como. `windowsserver[:instance_id]` A receita insere a string correspondente na mensagem e a adiciona ao log do Chef.

1. Crie um arquivo `.zip` do livro de receitas `ipaddress`, [faça upload do arquivo em um bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html) e registre o URL do arquivo. Para obter mais informações sobre repositórios de livros de receitas, consulte [Repositórios de livro de receitas](workingcookbook-installingcustom-repo.md).

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

Agora você pode instalar o livro de receitas e executar a receita.

**Para instalar o livro de receitas e executar a receita**

1. [Edite a pilha para habilitar livros de receitas personalizados](workingcookbook-installingcustom-enable.md) e especifique as seguintes configurações.
   + **Tipo de repositório**: **Arquivamento do S3**
   + **URL do repositório**: o URL do arquivo do livro de receitas que você registrou anteriormente

   Aceite os valores padrão para as outras configurações e escolha **Save** para atualizar a configuração da pilha.

1. [Execute o comando de pilha Update Custom Cookbooks](workingstacks-commands.md), que instala a versão atual de seus livros de receitas personalizados nas instâncias da pilha, inclusive em instâncias online. Se uma versão mais antiga de seus livros de receitas estiver presente, este comando a sobrescreverá.

1. Após a execução de Update Custom Cookbooks (Atualizar livros de receitas personalizados), execute a receita executando o [comando de pilha**Execute Recipes (Executar receitas)**](workingstacks-commands.md) com a opção **Recipes to execute (Receitas para executar)** definida como **idcheck::default**. Esse comando inicia uma execução do Chef com uma lista de execução que consiste na sua receita. Deixe a página execute\$1recipes aberta.

Após a execução com êxito da receita, você pode verificá-la examinando no [log do Chef](troubleshoot-debug-log.md) o evento execute\$1recipes mais recente. Na **Running command execute\$1recipes page**, escolha **show** na coluna **Log** da instância iptest1 para exibir o log. Role para baixo para localizar sua mensagem de log na parte inferior, que será semelhante ao seguinte.

```
...
[2015-05-13T20:03:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache.
[2015-05-13T20:03:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache.
[2015-05-13T20:03:47+00:00] INFO: **********The instance ID is: 'i-8703b570'**********
[2015-05-13T20:03:47+00:00] INFO: Chef Run complete in 0.312518 seconds 
...
```