Attributs de déploiement et de configuration de pile - 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.

Attributs de déploiement et de configuration de pile

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie 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.

Lorsque AWS OpsWorks Stacks exécute une commande sur une instance, par exemple une commande de déploiement en réponse à un événement du cycle de vie de déploiement, il ajoute un ensemble d'attributs à l'objet nœud de l'instance qui décrit la configuration actuelle de la pile. Pour les commandes Deploy events et Execute Recipes stack, AWS OpsWorks Stacks installe les attributs de déploiement, qui fournissent des informations de déploiement supplémentaires. Pour plus d'informations sur l'objet nœud, consultez Remplacement des attributs. Pour obtenir la liste des attributs de déploiement et de configuration de pile couramment utilisés, y compris les noms de nœud complets, consultez Attributs de déploiement et de configuration de pile : Linux et Attributs des livres de recettes intégrés.

Note

Sur les piles Linux, vous pouvez obtenir une liste complète de ces attributs, mis en forme comme un objet JSON, à l'aide de la commande get_json de l'interface de ligne de commande de l'agent.

Les sections suivantes décrivent les attributs associés à un événement Configure et à un événement Deploy d'une pile simple, qui comprend les éléments suivants :

  • Une couche PHP App Server avec deux instances

  • Une couche HAProxy avec une instance

Les exemples proviennent de l'une des instances de PHP App Server, php-app1. Pour plus de commodité, les attributs sont mis en forme comme un objet JSON. La structure de l'objet est mappé avec les noms complets des attributs. Par exemple, l'attribut node[:opsworks][:ruby_version] apparaît comme suit dans une représentation JSON.

{ "opsworks": { ... "ruby_version": "1.8.7", ... } }

Attributs Configure

L'objet JSON suivant illustre les attributs d'un événement Configure, qui se produit sur chaque instance de la pile lorsqu'une instance est mise en ligne ou hors connexion. Les attributs incluent les attributs intégrés de configuration de pile intégrée et les attributs JSON personnalisés qui ont été définis pour la pile avant l'événement (aucun dans cet exemple). Il a été modifié quant à la longueur. Pour une description détaillée des différents attributs, consultez Attributs de déploiement et de configuration de pile : Linux et Attributs des livres de recettes intégrés.

{ "opsworks": { "layers": { "php-app": { "id": "4a2a56c8-f909-4b39-81f8-556536d20648", "instances": { "php-app2": { "elastic_ip": null, "region": "us-west-2", "booted_at": "2013-02-26T20:41:10+00:00", "ip": "192.0.2.0", "aws_instance_id": "i-34037f06", "availability_zone": "us-west-2a", "instance_type": "c1.medium", "private_dns_name": "ip-10-252-0-203.us-west-2.compute.internal", "private_ip": "10.252.0.203", "created_at": "2013-02-26T20:39:39+00:00", "status": "online", "backends": 8, "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com" }, "php-app1": { ... } }, "name": "PHP Application Server" }, "lb": { "id": "15c86142-d836-4191-860f-f4d310440f14", "instances": { "lb1": { ... } }, "name": "Load Balancer" } }, "agent_version": "104", "applications": [ ], "stack": { "name": "MyStack" }, "ruby_version": "1.8.7", "sent_at": 1361911623, "ruby_stack": "ruby_enterprise", "instance": { "layers": [ "php-app" ], "region": "us-west-2", "ip": "192.0.2.0", "id": "45ef378d-b87c-42be-a1b9-b67c48edafd4", "aws_instance_id": "i-32037f00", "availability_zone": "us-west-2a", "private_dns_name": "ip-10-252-84-253.us-west-2.compute.internal", "instance_type": "c1.medium", "hostname": "php-app1", "private_ip": "10.252.84.253", "backends": 8, "architecture": "i386", "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com" }, "activity": "configure", "rails_stack": { "name": null }, "deployment": null, "valid_client_activities": [ "reboot", "stop", "setup", "configure", "update_dependencies", "install_dependencies", "update_custom_cookbooks", "execute_recipes" ] }, "opsworks_custom_cookbooks": { "recipes": [ ], "enabled": false }, "recipes": [ "opsworks_custom_cookbooks::load", "opsworks_ganglia::configure-client", "ssh_users", "agent_version", "mod_php5_apache2::php", "php::configure", "opsworks_stack_state_sync", "opsworks_custom_cookbooks::execute", "test_suite", "opsworks_cleanup" ], "opsworks_rubygems": { "version": "1.8.24" }, "ssh_users": { }, "opsworks_bundler": { "manage_package": null, "version": "1.0.10" }, "deploy": { } }

La plupart des informations se trouvent sous l'attribut opsworks, qui est souvent désigné par l'appellation espace de noms. La liste suivante décrit les attributs clés :

  • layersattributs : ensemble d'attributs, dont chacun décrit la configuration de l'une des couches de la pile.

    Les couches sont identifiées par leurs noms courts, php-app et lb dans cet exemple. Pour plus d'informations sur les noms courts des autres couches, consultez AWS OpsWorks Référence de la couche Stacks.

  • instancesattributs — Chaque couche possède un instances élément, qui inclut un attribut pour chacune des instances en ligne des couches, nommé avec le nom abrégé de l'instance.

    La couche PHP App Server possède deux instances, php-app1 etphp-app2. La couche HAProxy possède une instance,lb1.

    Note

    L'élément instances contient uniquement les instances qui sont dans l'état en ligne lorsque les attributs de configuration et de déploiement de pile sont créés.

  • Attributs d'instance : chaque attribut d'instance contient un ensemble d'attributs qui caractérisent l'instance, tels que l'adresse IP privée et le nom DNS privé de l'instance. Pour des raisons de brièveté, l'exemple ne montre que l'attribut php-app2 en détail ; les autres attributs contiennent des informations similaires.

  • applications— Liste des applications déployées, non utilisées dans cet exemple.

  • stack— Le nom de la pile ; MyStack dans cet exemple.

  • instance— L'instance sur laquelle ces attributs sont installés ; php-app1 dans cet exemple. Les recettes peuvent utiliser cet attribut pour obtenir des informations sur l'instance sur laquelle elles s'exécutent, telles que l'adresse IP publique de l'instance.

  • activity— L'activité qui a produit les attributs ; un événement de configuration dans cet exemple.

  • rails_stack— La pile Rails pour les piles qui incluent une couche Rails App Server.

  • deployment— Si ces attributs sont associés à un déploiement. Défini sur null pour cet exemple, car ils sont associés à un événement Configure.

  • valid_client_activities— Une liste des activités valides des clients.

L'attribut opsworks est suivi de plusieurs autres attributs de niveau supérieur, y compris les attributs suivants :

  • opsworks_custom_cookbooks— Si les livres de recettes personnalisés sont activés. Si tel est le cas, l'attribut inclut une liste de recettes personnalisées.

  • recipes— Les recettes élaborées dans le cadre de cette activité.

  • opsworks_rubygems— RubyGems Version de l'instance.

  • ssh_users— Une liste d'utilisateurs SSH ; aucun dans cet exemple.

  • opsworks_bundler— La version du bundler et son activation.

  • deploy— Informations sur les activités de déploiement ; aucune dans cet exemple.

Attributs de déploiement

Les attributs d'un événement Deploy ou d'une commande de pile Execute Recipes se composent des attributs intégrés de configuration et de déploiement de pile, et des attributs personnalisés de pile ou de déploiement (aucun pour cet exemple). L'objet JSON suivant montre les attributs de php-app1 qui sont associés à un événement Deploy ayant déployé l'application SimplePHP sur les instances PHP de la pile. Une grande partie de l'objet se compose d'attributs de configuration de pile, similaires à ceux de l'événement Configure décrit dans la section précédente ; par conséquent, l'exemple se concentre principalement sur les attributs spécifiques au déploiement. Pour une description détaillée des différents attributs, consultez Attributs de déploiement et de configuration de pile : Linux et Attributs des livres de recettes intégrés.

{ ... "opsworks": { ... "activity": "deploy", "applications": [ { "slug_name": "simplephp", "name": "SimplePHP", "application_type": "php" } ], "deployment": "5e6242d7-8111-40ee-bddb-00de064ab18f", ... }, ... { "ssh_users": { }, "deploy": { "simplephpapp": { "application": "simplephpapp", "application_type": "php", "environment_variables": { "USER_ID": "168424", "USER_KEY": "somepassword" }, "auto_bundle_on_deploy": true, "deploy_to": "/srv/www/simplephpapp", "deploying_user": "arn:aws:iam::123456789012:user/guysm", "document_root": null, "domains": [ "simplephpapp" ], "migrate": false, "mounted_at": null, "rails_env": null, "restart_command": "echo 'restarting app'", "sleep_before_restart": 0, "ssl_support": false, "ssl_certificate": null, "ssl_certificate_key": null, "ssl_certificate_ca": null, "scm": { "scm_type": "git", "repository": "git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git", "revision": "version1", "ssh_key": null, "user": null, "password": null }, "symlink_before_migrate": { "config/opsworks.php": "opsworks.php" }, "symlinks": { }, "database": { }, "memcached": { "host": null, "port": 11211 }, "stack": { "needs_reload": false } } }, }

L'attribut opsworks est largement identique à l'exemple de la section précédente. Les sections suivantes sont plus pertinentes pour le déploiement :

  • activity— L'événement associé à ces attributs ; un événement Deploy dans cet exemple.

  • applications— Contient un ensemble d'attributs pour chaque application qui fournissent les noms, les noms des slugs et les types des applications.

    Le nom du slug est le nom abrégé de l'application, que AWS OpsWorks Stacks génère à partir du nom de l'application. Le nom slug de SimplePHP est simplephp.

  • deployment— L'ID de déploiement, qui identifie de manière unique un déploiement.

L'attribut deploy inclut des informations sur les applications qui sont déployées. Par exemple, les recettes intégrées Deploy utilisent les données de l'attribut deploy pour installer les fichiers dans les répertoires appropriés et créer les fichiers de connexion de base de données. L'attribut deploy inclut un attribut pour chaque application déployée, nommé d'après le nom court de l'application. Chaque attribut d'application contient les attributs suivants :

  • environment_variables— Contient toutes les variables d'environnement que vous avez définies pour l'application. Pour plus d’informations, consultez Variables d'environnement.

  • domains— Par défaut, le domaine est le nom abrégé de l'application, qui est simplephpapp dans cet exemple. Si vous avez attribué des domaines personnalisés, ils apparaissent ici aussi bien. Pour plus d’informations, consultez Utilisation des domaines personnalisés.

  • application— Le nom abrégé de l'application.

  • scm— Cet élément contient les informations requises pour télécharger les fichiers de l'application depuis son dépôt, un dépôt Git dans cet exemple.

  • database— Informations de base de données, si la pile inclut une couche de base de données.

  • document_root— La racine du document, qui est définie sur null dans cet exemple, indique que la racine est publique.

  • ssl_certificate_ca,ssl_support, ssl_certificate_key — Indique si l'application prend en charge le protocole SSL. Si oui, les attributs ssl_certificate_key et ssl_certificate_ca sont définis avec les certificats correspondants.

  • deploy_to— Le répertoire racine de l'application.