Utilisation de l'index de recherche du nœud sur les piles Windows - AWS OpsWorks

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

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé pour les nouveaux clients et 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 ou via le AWS Support Premium.

Note

Cet exemple suppose que vous avez déjà fait l'exemple Exécution d'une recette sur une instance Windows. 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 plus d’informations, consultez Créer une pile.

Création d'une pile
  1. Ouvrez la console AWS OpsWorks Stacks et choisissez Add Stack (Ajouter une pile).

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

  3. Choisissez Add a layer (Ajouter une couche) et ajoutez une couche personnalisée à la pile avec les paramètres suivants.

    • Nom — IPTest

    • Nom court — iptest

  4. Ajoutez une instance t2.micro 24/7 avec les paramètres par défaut à la couche IPTest et lancez-la. Elle sera nommée iptest1.

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

  5. 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 plus d’informations, consultez Connexion avec RDP.

Pour configurer le livre de recettes
  1. Créez un répertoire nommé nodesearch et accédez à celui-ci.

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

    name "nodesearch" version "0.1.0"
  3. Créez un répertoire recipes dans nodesearch.

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

    2. 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ôte en ajoutant des entiers au nom court de la couche, cette requête retourne chaque instance dans 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.

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

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

  5. Créez une archive .zip de nodesearch, chargez l'archive dans un compartiment S3, rendez l'archive publique, 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? (Comment puis-je vider un compartiment S3 ?) ou How Do I Delete an S3 Bucket? (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 et spécifiez les paramètres suivants.

    • Type de référentielS3 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.

  2. Exécutez la commande de pile de mise à jour des livres de recettes personnalisés, 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.

  3. 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) 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_recipes 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 l'événement execute_recipes le plus récent. Sur la page Running command execute_recipes (Exécution de la commande execute_recipes), 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) ...
  2. Utilisez RDP pour vous connecter à l'instance et examinez le contenu de C:\tmp\addresses.txt.