Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Simulation des attributs de configuration et de déploiement de la pile sur Vagrant - 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.

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.

Simulation des attributs de configuration et de déploiement de la pile sur Vagrant

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 ou via le AWS Support Premium.

Note

Cette rubrique s'applique uniquement aux instances Linux. Test Kitchen n'étant pas encore compatible avec Windows, vous allez exécuter tous les exemples Windows sur des instances AWS OpsWorks Stacks.

AWS OpsWorks Stacks ajoute des attributs de configuration et de déploiement à l'objet nœud pour chaque instance de votre pile pour chaque événement du cycle de vie. Ces attributs fournissent un instantané de la configuration de la pile, y compris la configuration de chaque couche et ses instances en ligne, la configuration de chaque application déployée, etc. Comme ces attributs se trouvent dans l'objet nœud, ils sont accessibles par n'importe quelle recette ; la plupart des recettes pour les instances AWS OpsWorks Stacks utilisent un ou plusieurs de ces attributs.

Une instance exécutée dans une boîte Vagrant n'est pas gérée par AWS OpsWorks Stacks, son objet de nœud n'inclut donc aucune configuration de pile ni aucun attribut de déploiement par défaut. Toutefois, vous pouvez ajouter un ensemble d'attributs approprié à l'environnement de Test Kitchen. Test Kitchen ajoute ensuite les attributs à l'objet nœud de l'instance, et vos recettes peuvent accéder aux attributs comme elles le feraient sur une instance AWS OpsWorks Stacks.

Cette rubrique montre comment obtenir une copie d'attributs de configuration et de déploiement de pile appropriés, installer les attributs sur une instance et y accéder.

Note

Si vous utilisez Test Kitchen pour exécuter des tests sur vos recettes, fauxhai fournit un autre moyen de simuler le JSON de configuration et de déploiement de la pile.

Pour configurer le livre de recettes
  1. Créez un sous-répertoire d'opsworks_cookbooks, nommé printjson et accédez à celui-ci.

  2. Initialisez et configurez Test Kitchen, comme décrit dans Exemple 1 : Installation des packages.

  3. Ajoutez deux sous-répertoires à printjson : recipes et environments.

Vous pouvez simuler attributs de déploiement et de configuration de la pile en ajoutant un fichier d'attribut à votre livre de recettes avec les définitions appropriées, mais une meilleure approche consiste à utiliser l'environnement de Test Kitchen. Il existe deux approches de base :

  • Ajoutez des définitions d'attribut à .kitchen.yml.

    Cette approche est particulièrement utile si vous avez quelques attributs. Pour plus d'informations, consultez kitchen.yml.

  • Définissez les attributs dans un fichier d'environnement et référencez le fichier dans .kitchen.yml.

    Cette approche est généralement préférable pour les attributs de déploiement et de configuration de la pile, car le fichier d'environnement est déjà au format JSON. Vous pouvez obtenir une copie des attributs au format JSON à partir d'une instance AWS OpsWorks Stacks appropriée et simplement la coller. Tous les exemples utilisent un fichier d'environnement.

La façon la plus simple de créer les attributs de configuration et de déploiement d'une pile pour votre livre de recettes consiste à créer une pile configurée de manière appropriée et à copier les attributs obtenus à partir d'une instance au format JSON. Pour veiller à ce que votre fichier d'environnement de Test Kitchen reste gérable, vous pouvez ensuite modifier ce JSON de façon à avoir uniquement les attributs nécessaires pour vos recettes. Les exemples de ce chapitre reposent sur la pile de Mise en route des piles Linux Chef 11, qui est une pile de serveur d'application PHP simple avec un équilibreur de charge, des serveurs d'application PHP et un serveur de base de données MySQL.

Pour créer un JSON de configuration et de déploiement de la pile
  1. Créez MyStack comme décrit dansMise en route des piles Linux Chef 11, y compris le déploiement de SimplePHPApp. Si vous préférez, vous pouvez omettre la deuxième instance de PHP App Server appelée dans Étape 4 : Diminution MyStack ; les exemples n'utilisent pas ces attributs.

  2. Si vous ne l'avez pas encore fait, lancez l'instance php-app1, puis connectez-vous avec SSH.

  3. Dans la fenêtre du terminal, exécutez la commande agent cli suivante :

    sudo opsworks-agent-cli get_json

    Cette commande affiche les attributs de configuration et de déploiement de la pile de l'instance les plus récents dans la fenêtre de terminal au format JSON.

  4. Copiez le JSON dans un fichier .json et enregistrez-le dans un emplacement approprié sur votre poste de travail. Les détails dépendent de votre client SSH. Par exemple, si vous utilisez PuTTY sous Windows, vous pouvez exécuter la commande Copy All to Clipboard, qui copie tout le texte de la fenêtre de terminal dans le presse-papiers Windows. Vous pouvez ensuite coller le contenu dans un fichier .json et modifier ce dernier pour supprimer le texte superflu.

  5. Modifiez le MyStack JSON selon vos besoins. Les attributs de configuration et de déploiement de la pile sont nombreux et les livres de recettes utilisent généralement une petite partie d'entre eux. Pour que votre fichier d'environnement reste gérable, vous pouvez modifier le format JSON afin qu'il conserve la structure d'origine, mais contienne uniquement les attributs réellement utilisés par vos livres de recettes.

    Cet exemple utilise une version fortement modifiée du MyStack JSON qui inclut uniquement deux ['opsworks']['stack'] attributs, ['id] et['name']. Créez une version modifiée du MyStack JSON qui ressemble à ce qui suit :

    { "opsworks": { "stack": { "name": "MyStack", "id": "42dfd151-6766-4f1c-9940-ba79e5220b58", }, }, }

Pour obtenir ce JSON dans l'objet de nœud de l'instance, vous devez l'ajouter à un environnement de Test Kitchen.

Pour ajouter des attributs de déploiement et de configuration de la pile à l'environnement de Test Kitchen
  1. Créez un fichier d'environnement nommé test.json avec le contenu suivant et enregistrez-le dans le dossier environments du livre de recettes.

    { "default_attributes": { "opsworks" : { "stack" : { "name" : "MyStack", "id" : "42dfd151-6766-4f1c-9940-ba79e5220b58" } } }, "chef_type" : "environment", "json_class" : "Chef::Environment" }

    Le fichier d'environnement comporte les éléments suivants :

    • default_attributes— Les attributs par défaut au format JSON.

      Ces attributs sont ajoutés à l'objet de nœud avec le type d'attribut default, qui est le type utilisé par tous les attributs JSON de configuration et de déploiement de la pile. Cet exemple utilise la version modifiée du JSON de configuration et de déploiement de la pile présenté précédemment.

    • chef_type— Définissez cet élément surenvironment.

    • json_class— Définissez cet élément surChef::Environment.

  2. Modifiez .kitchen.yml de façon à définir l'environnement de Test Kitchen comme suit.

    --- driver: name: vagrant provisioner: name: chef_solo environments_path: ./environments platforms: - name: ubuntu-12.04 suites: - name: printjson provisioner: solo_rb: environment: test run_list: - recipe[printjson::default] attributes:

    Vous définissez l'environnement en ajoutant les éléments suivants à la valeur par défaut .kitchen.yml créée par kitchen init.

    fournisseur

    Ajoutez les éléments suivants.

    • name— Définissez cet élément surchef_solo.

      Pour reproduire plus fidèlement l'environnement AWS OpsWorks Stacks, vous pouvez utiliser le mode local du client Chef au lieu de Chef solo. Le mode local est une option du client Chef qui utilise une version légère du serveur Chef (Chef zéro) exécutée localement sur l'instance plutôt que sur un serveur à distance. Il permet à vos recettes d'utiliser les fonctionnalités du serveur Chef, par exemple les recherches ou les conteneurs de données sans connexion à un serveur à distance.

    • environments_path— Le sous-répertoire du livre de recettes qui contient le fichier d'environnement, dans cet ./environments exemple.

    suites:provisioner

    Ajoutez un élément solo_rb avec un élément environment défini sur le nom du fichier d'environnement, moins l'extension .json. Cet exemple définit environment sur test.

  3. Créez un fichier nommé default.rb avec le contenu suivant et enregistrez-le dans le répertoire recipes du livre de recettes.

    log "Stack name: #{node['opsworks']['stack']['name']}" log "Stack id: #{node['opsworks']['stack']['id']}"

    Cette recette consigne simplement les valeurs de la configuration et du déploiement de la pile que vous avez ajoutées à l'environnement. Bien que la recette soit exécutée localement dans Virtual Box, vous référencez ces attributs en utilisant la même syntaxe de nœud que si la recette était exécutée sur une instance AWS OpsWorks Stacks.

  4. Exécutez kitchen converge. Vous devriez voir quelque chose comme la sortie de journal suivante.

    ... Converging 2 resources Recipe: printjson::default * log[Stack name: MyStack] action write[2014-07-01T23:14:09+00:00] INFO: Processing log[Stack name: MyStack] action write (printjson::default line 1) [2014-07-01T23:14:09+00:00] INFO: Stack name: MyStack * log[Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58] action write[2014-07-01T23:14:09+00:00] INFO: Processing log[Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58] action write (printjson::default line 2) [2014-07-01T23:14:09+00:00] INFO: Stack id: 42dfd151-6766-4f1c-9940-ba79e5220b58 ...
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.