

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de l'index de recherche du nœud sur les piles Windows
<a name="cookbooks-101-opsworks-opsworks-stack-config-search-node"></a>

**Important**  
Le AWS OpsWorks Stacks service a pris fin le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur [AWS Re:Post](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium.

**Note**  
Cet exemple suppose que vous avez déjà fait l'exemple [Exécution d'une recette sur une instance Windows](cookbooks-101-opsworks-opsworks-windows.md). Si tel n'est pas le cas, commencez par cet exemple. Il décrit plus particulièrement comment autoriser l'accès RDP à vos instances.

Cet exemple repose sur une pile Windows avec une seule couche personnalisée et une instance. Il utilise la recherche de Chef avec l'index de recherche `node` pour obtenir l'adresse IP publique du serveur et met l'adresse dans un fichier du répertoire `C:\tmp`. Voici un bref résumé de la création de la pile pour cet exemple. Pour de plus amples informations, veuillez consulter [Créer une pile](workingstacks-creating.md).

**Création d’une pile**

1. Ouvrez la [console OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) et choisissez **Add Stack (Ajouter une pile)**.

1. Spécifiez les paramètres suivants, acceptez les valeurs par défaut pour les autres paramètres et choisissez **Add Stack (Ajouter une pile)**.
   + **Nom** — NodeSearch
   + **Région** — Ouest des États-Unis (Oregon)

     Cet exemple fonctionne dans n'importe quelle région, mais nous vous recommandons d'utiliser US West (Oregon) pour les didacticiels.
   + **Système d'exploitation par défaut** : Microsoft Windows Server 2012 R2

1. Choisissez **Add a layer (Ajouter une couche)** et [ajoutez une couche personnalisée](workinglayers-custom.md) à la pile avec les paramètres suivants.
   + **Nom** — IPTest
   + **Nom court** — iptest

1. [Ajoutez une instance t2.micro 24h/24 et 7j/7](workinginstances-add.md) avec les paramètres par défaut à la IPTest couche et [démarrez-la](workinginstances-starting.md). Elle sera nommée iptest1.

   OpsWorks Stacks attribue `AWS-OpsWorks-RDP-Server` automatiquement cette instance, ce qui permet aux utilisateurs autorisés de se connecter à l'instance.

1. Choisissez **Permissions (Autorisations)**, puis **Edit (Modifier)**, et sélectionnez **SSH/RDP** et **sudo/admin**. Les utilisateurs standard ont besoin de cette autorisation en plus du groupe de sécurité `AWS-OpsWorks-RDP-Server` pour se connecter à l'instance. 
**Note**  
Vous pouvez également vous connecter en tant qu'Administrator, mais en ayant recours à une procédure différente. Pour de plus amples informations, veuillez consulter [Connexion avec RDP](workinginstances-rdp.md).

**Pour configurer le livre de recettes**

1. Créez un répertoire nommé `nodesearch` et accédez à celui-ci.

1. Créez un fichier `metadata.rb` avec le contenu suivant et enregistrez-le sur `opstest`.

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

1. Créez un répertoire `recipes` dans `nodesearch`.

1. Créez un fichier `default.rb` avec la recette suivante et enregistrez-le dans le répertoire `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 recette exécute les tâches suivantes :

   1. Utilisez une ressource de répertoire pour créer un répertoire `C:\tmp` pour le fichier.

      Pour plus d'informations sur cette ressource, consultez [Exemple 3 : Création de répertoires](cookbooks-101-basics-directories.md).

   1. Utilisez la recherche de Chef avec l'index de recherche `node` pour obtenir une liste de nœuds (instances) avec un nom d'hôte commençant par `iptest`.

      Si vous utilisez le thème par défaut, qui crée des noms d'hôtes en ajoutant des entiers au nom abrégé de la couche, cette requête renverra toutes les instances de la couche. IPTest Pour cet exemple, la couche n'a qu'une seule instance, c'est pourquoi la recette attribue simplement la première à `windowsserver`. Pour plusieurs instances, vous pouvez obtenir la liste complète, puis les énumérer.

   1. Ajoute un message avec l'adresse IP au journal de Chef pour cette exécution.

      L'objet `windowsserver` est une table de hachage dont l'attribut `ipaddress` est défini sur l'adresse IP publique de l'instance afin que vous puissiez représenter cette adresse dans le code de recette suivant sous la forme `windowsserver[:ipaddress]`. La recette insère la chaîne correspondante dans le message et l'ajoute dans le journal de Chef.

   1. Utilise la ressource `file` pour créer un fichier avec l'adresse IP nommée `C:\tmp\addresses.txt`.

      L'attribut `content` de la ressource spécifie le contenu à ajouter au fichier, l'adresse IP publique dans le cas présent. 

1. Créez une archive `.zip` de `nodesearch`, [chargez l'archive dans un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html), [rendez l'archive publique](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html), puis enregistrez l'URL de l'archive. 

   Le contenu livré aux compartiments Amazon S3 peut contenir du contenu client. Pour plus d'informations sur la suppression de données sensibles, consultez [How Do I Empty an S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) (Comment puis-je vider un compartiment S3 ?) ou [How Do I Delete an S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) (Comment supprimer un compartiment S3 ?).

Vous pouvez maintenant installer le livre de recettes et exécuter la recette.

**Pour installer le livre de recettes et exécuter la recette**

1. [Modifiez la pile pour activer les livres personnalisés](workingcookbook-installingcustom-enable.md) et spécifiez les paramètres suivants.
   + **Type de référentiel** — **S3 Archive**
   + **URL du référentiel : URL** de l'archive du livre de recettes que vous avez enregistrée précédemment

   Acceptez les valeurs par défaut pour les autres paramètres, puis choisissez **Save (Enregistrer)** pour mettre à jour la configuration de la pile.

1. [Exécutez la commande de pile de mise à jour des livres de recettes personnalisés](workingstacks-commands.md), qui installe la version actuelle de vos livres de recettes personnalisés sur les instances de la pile, dont les instances en ligne. Si une version antérieure de vos livres de recettes est présente, cette commande la remplace.

1. Une fois l'opération Update Custom Cookbooks (Mettre à jour les livres de recettes personnalisées) terminée, exécutez la recette en exécutant la [commande de pile **Execute Recipes (Exécuter les recettes)**](workingstacks-commands.md) avec le paramètre **Recipes to execute (Recettes à exécuter)** défini sur **nodesearch::default**. Cette commande lance une exécution de Chef, avec une liste d'exécution composée de votre recette. Laissez la page execute\$1recipes ouverte.

Une fois que la recette a été exécutée correctement, vous pouvez la vérifier.

**Pour vérifier nodesearch**

1. Recherchez dans le [journal de Chef](troubleshoot-debug-log.md) l'événement execute\$1recipes le plus récent. Sur la **page Running command execute\$1recipes (Exécution de la commande execute\$1recipes)**, choisissez **show (afficher)** dans la colonne **Log (Journal)** de l'instance iptest1 pour afficher le journal. Faites défiler vers le bas pour trouver votre message de journal près de la fin, comme illustré ci-après.

   ```
   ...
   [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. [Utilisez RDP pour vous connecter à l'instance](workinginstances-rdp.md) et examinez le contenu de `C:\tmp\addresses.txt`.