

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo dell'indice di ricerca del nodo sugli stack Windows
<a name="cookbooks-101-opsworks-opsworks-stack-config-search-node"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su [AWS re:post](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

**Nota**  
Questo esempio presuppone che tu abbia già completato l'esempio [Esecuzione di una ricetta su un'istanza Windows](cookbooks-101-opsworks-opsworks-windows.md). In caso contrario, ti consigliamo di iniziare da questo esempio, che descrive in particolare come abilitare l'accesso RDP alle istanze.

Questo esempio si basa su uno stack Windows con un singolo livello personalizzato e un'istanza. Uilizza la ricerca di Chef con l'indice di ricerca `node` per ottenere l'indirizzo IP pubblico del server e inserisce l'indirizzo in un file nella directory `C:\tmp`. Di seguito viene brevemente descritto come creare lo stack per questo esempio. Per ulteriori informazioni, consulta [Creare un nuovo stack](workingstacks-creating.md).

**Creare uno stack**

1. Aprire la [console OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) e scegliere **Add Stack (Aggiungi stack)**.

1. Specificare le impostazioni seguenti, accettare i valori predefiniti di altre impostazioni e scegliere **Add Stack (Aggiungi stack)**.
   + **Nome —** NodeSearch
   + **Regione**: Stati Uniti occidentali (Oregon)

     Questo esempio funzionerà in qualsiasi regione, ma consigliamo di utilizzare Stati Uniti occidentali (Oregon) per i tutorial.
   + **Sistema operativo predefinito**: Microsoft Windows Server 2012 R2

1. Scegliere **Add a layer (Aggiungi un livello)** e [aggiungere un livello personalizzato](workinglayers-custom.md) allo stack con le impostazioni seguenti.
   + **Nome** — IPTest
   + **Nome breve**: iptest

1. [Aggiungi un'istanza t2.micro 24 ore su 24, 7 giorni su 7](workinginstances-add.md) [con impostazioni predefinite al IPTest layer e avviala.](workinginstances-starting.md) Verrà denominata iptest1.

   OpsWorks Stacks si `AWS-OpsWorks-RDP-Server` assegna automaticamente a questa istanza, il che consente agli utenti autorizzati di accedere all'istanza.

1. Scegliere **Permissions (Autorizzazioni)**, poi **Edit (Modifica)** e selezionare **SSH/RDP**, quindi scegliere **sudo/admin**. Gli utenti standard necessitano di questa autorizzazione oltre al gruppo di sicurezza `AWS-OpsWorks-RDP-Server` per accedere all'istanza. 
**Nota**  
Puoi anche effettuare l'accesso come amministratore, ma è necessario eseguire una procedura diversa. Per ulteriori informazioni, consulta [Accesso con RDP](workinginstances-rdp.md).

**Per configurare il libro di ricette**

1. Creare una directory denominata `nodesearch` e accedervi.

1. Creare un file `metadata.rb` con il seguente contenuto e salvarlo in `opstest`.

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

1. Creare una directory `recipes` in `nodesearch`.

1. Creare un file `default.rb` con la seguente ricetta e salvarlo nella directory `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
   ```

   La ricetta effettua le seguenti operazioni:

   1. Utilizza una risorsa di directory per creare una directory `C:\tmp` per il file.

      Per ulteriori informazioni su questa risorsa, consulta [Esempio 3: creazione di directory](cookbooks-101-basics-directories.md).

   1. Utilizza la ricerca di Chef con l'indice di ricerca `node` per ottenere un elenco di nodi (istanze) con un nome host che inizia per `iptest`.

      Se si utilizza il tema predefinito, che crea nomi host aggiungendo numeri interi al nome breve del layer, questa query restituirà ogni istanza del layer. IPTest In questo esempio il livello ha una sola istanza, pertanto la ricetta assegna semplicemente la prima a `windowsserver`. Per più istanze, puoi ottenere un elenco completo, quindi puoi enumerarle.

   1. Aggiunge un messaggio con l'indirizzo IP del log di Chef per questa esecuzione.

      L'oggetto `windowsserver` è una tabella hash il cui attributo `ipaddress` è impostato sull'indirizzo IP pubblico dell'istanza, pertanto puoi rappresentare tale indirizzo nel codice della ricetta successiva nella forma `windowsserver[:ipaddress]`. La ricetta inserisce la stringa corrispondente nel messaggio e la aggiunge al log di Chef.

   1. Utilizza la risorsa `file` per creare un file con l'indirizzo IP denominato `C:\tmp\addresses.txt`.

      L'attributo `content` della risorsa specifica contenuto da aggiungere al file, ovvero, in questo caso, l'indirizzo IP pubblico. 

1. Creare un archivio `.zip` di `nodesearch`, [Caricare l'archivio in un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html), [rendere pubblico l'archivio](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html) e registrare il relativo URL. 

   I contenuti distribuiti ai bucket Amazon S3 potrebbero contenere informazioni dei clienti. Per ulteriori informazioni sulla rimozione di dati sensibili, vedi [Come svuotare un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) o [Come eliminare un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

Adesso puoi installare il libro di ricette ed eseguire la ricetta.

**Per installare il libro di ricette ed eseguire la ricetta**

1. [Modificare lo stack per abilitare i libri di ricette personalizzati](workingcookbook-installingcustom-enable.md) e specificare le impostazioni seguenti.
   + **Tipo di **repository**: S3 Archive**
   + URL **del repository: l'URL** dell'archivio del libro di cucina che hai registrato in precedenza

   Accettare i valori predefiniti per altre impostazioni e scegliere **Save (Salva)** per aggiornare la configurazione dello stack.

1. [Eseguire il comando dello stack Update Custom Cookbooks (Aggiorna libri di ricette personalizzati)](workingstacks-commands.md), che installa la versione corrente dei libri di ricette personalizzati nelle istanze dello stack, incluse le istanze online. Se è presente una versione precedente dei libri di cucina, verrà sovrascritta da questo comando.

1. Al termine dell'operazione Update Custom Cookbooks (Aggiorna libri di ricette personalizzati), eseguire la ricetta tramite il [comando dello stack **Execute Recipes (Esegui ricette)**](workingstacks-commands.md) con l'opzione **Recipes to execute (Ricette da eseguire)** impostata su **nodesearch::default**. Questo comando avvia un'esecuzione di Chef, con un elenco di esecuzione costituito dalla tua ricetta. Lasciare la pagina execute\$1recipes aperta.

Dopo aver eseguito correttamente la ricetta, puoi verificarla.

**Per verificare nodesearch**

1. Esaminare il [log di Chef](troubleshoot-debug-log.md) per l'evento execute\$1recipes più recente. Nella **pagina di esecuzione del comando execute\$1recipes**, scegliere **show (mostra)** nella colonna **Log** dell'istanza iptest1 per visualizzare il log. Scorrere verso il basso per trovare il messaggio di log, che sarà simile al seguente.

   ```
   ...
   [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. [Utilizzare RDP per accedere all'istanza](workinginstances-rdp.md) ed esaminare i contenuti di `C:\tmp\addresses.txt`.