

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

# Usar o índice de pesquisa de nó em pilhas do Windows
<a name="cookbooks-101-opsworks-opsworks-stack-config-search-node"></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.

Este exemplo usa uma pilha do Windows com uma única camada personalizada e uma instância. Ele usa a pesquisa do Chef com o índice de pesquisa `node` para obter o endereço IP público do servidor e coloca o endereço em um arquivo no diretório `C:\tmp`. As instruções a seguir resumem o procedimento para criar a 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 **Add Stack (Adicionar pilha)**.

1. Especifique as seguintes configurações, aceite os padrões para as outras configurações e escolha **Add Stack**.
   + **Nome** — NodeSearch
   + **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** — IPTest
   + **Nome curto**: iptest

1. [Adicione uma instância t2.micro 24 horas por dia, 7 dias](workinginstances-add.md) [por semana, com configurações padrão na IPTest 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, o que permite que usuários autorizados façam login na instância.

1. Escolha **Permissions** e selecione **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**  
Também é possível 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 `nodesearch` e navegue até ele.

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

   ```
   name "nodesearch"
   version "0.1.0"
   ```

1. Criar um diretório `recipes` em `nodesearch`.

1. Crie um arquivo `default.rb` com a seguinte receita e salve-o no diretório `recipes`.

   ```
   directory 'C:\tmp' do
     rights :full_control, 'Everyone'
     recursive true
     action :create
   end
   
   windowsserver = search(:node, "hostname:iptest*").first
   Chef::Log.info("**********The public IP address is: '#{windowsserver[:ipaddress]}'**********")
   
   file 'C:\tmp\addresses.txt' do
     content "#{windowsserver[:ipaddress]}"
     rights :full_control, 'Everyone'
     action :create
   end
   ```

   A receita faz o seguinte:

   1. Usa um recurso de diretório para criar um diretório `C:\tmp` para o arquivo.

      Para obter mais informações sobre esse recurso, consulte [Exemplo 3: Criação de diretórios](cookbooks-101-basics-directories.md).

   1. Usa a pesquisa do Chef com o índice de pesquisa `node` para obter uma lista de nós (instâncias) com um nome de host que começa com `iptest`.

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

   1. Adiciona uma mensagem com o endereço IP ao log do Chef para essa execução.

      O objeto `windowsserver` é uma tabela de hash cujo atributo `ipaddress` é definido como o endereço IP público da instância, então, você pode representar esse endereço no código de receita subsequente como `windowsserver[:ipaddress]`. A receita insere a string correspondente na mensagem e a adiciona ao log do Chef.

   1. Usa o recurso `file` para criar um arquivo com o endereço IP chamado `C:\tmp\addresses.txt`.

      O atributo `content` do recurso especifica o conteúdo a ser adicionado ao arquivo, que, neste caso, é o endereço IP público. 

1. Crie um arquivo `.zip` de `nodesearch`, [faça upload do arquivo em um bucket do S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html), [torne o arquivo público](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html) e registre o URL do arquivo. 

   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 apra executar)** definida como **nodesearch::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.

**Para verificar nodesearch**

1. Examine 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-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache.
   [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache.
   [2015-05-13T18:55:47+00:00] INFO: **********The public IP address is: '192.0.0.1'**********
   [2015-05-13T18:55:47+00:00] INFO: Processing directory[C:\tmp] action create (nodesearch::default line 1)
   [2015-05-13T18:55:47+00:00] INFO: Processing file[C:\tmp\addresses.txt] action create (nodesearch::default line 10) 
   ...
   ```

1. [Use o RDP para fazer login na instância](workinginstances-rdp.md) e examine o conteúdo de `C:\tmp\addresses.txt`.