Utilisation d'index AWS OpsWorks de recherche spécifiques aux piles sur Windows Stacks - 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 d'index AWS OpsWorks de recherche spécifiques aux piles sur Windows Stacks

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.

AWS OpsWorks Stacks fournit les index de recherche suivants en plus de : node

  • aws_opsworks_stack— La configuration de la pile.

  • aws_opsworks_layer— Les configurations des couches de la pile.

  • aws_opsworks_instance— Les configurations d'instance de la pile.

  • aws_opsworks_app— Les configurations des applications de la pile.

  • aws_opsworks_user— Les configurations utilisateur de la pile.

  • aws_opsworks_rds_db_instance— Informations de connexion pour les instances RDS enregistrées.

Ces index incluent certains attributs Chef standard, mais sont principalement destinés à récupérer des attributs spécifiques à AWS OpsWorks Stacks. Par exemple, aws_opsworks_instance inclut un attribut status qui fournit l'état de l'instance, par exemple online.

Note

La méthode recommandée consiste à utiliser node dès que possible pour que vos recettes soient conformes aux pratiques standard de Chef. Pour obtenir un exemple, consultez Utilisation de l'index de recherche du nœud sur les piles Windows.

Cet exemple montre comment utiliser les index AWS OpsWorks Stacks pour récupérer la valeur d'un attribut spécifique à AWS OpsWorks Stacks. Il repose sur une simple pile Windows avec une couche personnalisée qui a une instance. Il utilise la recherche Chef pour obtenir l'ID AWS OpsWorks Stacks de l'instance et place les résultats dans le journal Chef.

Voici un bref résumé de la création d'une 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 + Stack. 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 — IDsearch

    • 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

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

    • Nom — IDCheck

    • Nom court — idcheck

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

    AWS OpsWorks Stacks est automatiquement attribué AWS-OpsWorks-RDP-Server à cette instance. Activation de l'accès RDPexplique comment ajouter une règle entrante à ce groupe de sécurité qui permet aux utilisateurs autorisés de se connecter à l'instance.

  4. Choisissez Permissions (Autorisations), puis Edit (Modifier), et choisissez 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é idcheck et accédez à celui-ci.

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

    name "idcheck" version "0.1.0"
  3. Créez un répertoire recipes dans idcheck et ajoutez un fichier default.rb dans le répertoire qui contient la recette suivante.

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

    La recette utilise la fonctionnalité de recherche Chef avec un index de recherche aws_opsworks_instance afin d'obtenir les attributs d'instance de chaque instance de la pile avec un nom d'hôte commençant par idcheck. 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 IDCheck. 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.

    La recette profite de la présence d'une seule instance dans la pile avec ce nom d'hôte, c'est pourquoi le premier résultat est le bon. Si la pile comporte plusieurs instances, la recherche sur d'autres attributs peut retourner plusieurs résultats. Pour obtenir une liste d'attributs d'instance, consultez Conteneur de données de l'instance (aws_opsworks_instance).

    Les attributs de l'instance sont essentiellement une table de hachage, et l'identifiant AWS OpsWorks Stacks de l'instance est attribué à l'instance_idattribut. Vous pouvez donc appeler l'ID. windowsserver[:instance_id] La recette insère la chaîne correspondante dans le message et l'ajoute dans le journal de Chef.

  4. Créez une .zip archive du ipaddress livre de recettes, chargez l'archive dans un compartiment Amazon S3 et enregistrez l'URL de l'archive. Pour plus d'informations sur les référentiels de livre de recettes, consultez Référentiels de livres de recettes.

    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 la mise à jour des 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 idcheck::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 avec succès, vous pouvez la vérifier en recherchant 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-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 ...