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.
Utiliser l' CodeDeploy agent pour valider un package de déploiement sur une machine locale
À l'aide de l' CodeDeploy agent, vous pouvez déployer du contenu sur une instance à laquelle vous êtes connecté. Cela vous permet de tester l'intégrité d'un fichier de spécification d'application (AppSpec fichier) que vous souhaitez utiliser dans le cadre d'un déploiement et du contenu que vous souhaitez déployer.
Il n'est pas nécessaire de créer une application et un groupe de déploiement. Si vous souhaitez déployer du contenu stocké sur l'instance locale, vous n'avez même pas besoin de AWS compte. Pour les tests les plus simples, vous pouvez exécuter la codedeploy-agent deploy-local commande, sans spécifier d'options, dans un répertoire contenant le AppSpec fichier et le contenu à déployer. L'outil inclut aussi des options pour d'autres scénarios de test.
En validant un package de déploiement sur un ordinateur local, vous pouvez :
-
Tester l'intégrité d'une révision d'application.
-
Testez le contenu d'un AppSpec fichier.
-
Essayez CodeDeploy pour la première fois avec le code de votre application existant.
-
Déployer rapidement du contenu lorsque vous êtes déjà connecté à une instance.
Vous pouvez utiliser le contenu de déploiement stocké sur l'instance locale ou dans un type de référentiel distant pris en charge (compartiments Amazon S3 ou GitHub référentiels publics).
Conditions préalables
Avant de lancer un déploiement local, effectuez les étapes suivantes :
-
Créez ou utilisez un type d'instance pris en charge par l' CodeDeploy agent. Pour plus d'informations, consultez Systèmes d'exploitation pris en charge par l' CodeDeploy agent.
-
Installez la version 2.0.0 ou ultérieure de l' CodeDeploy agent. La
deploy-localsous-commande nécessite la version 2.0.0 ou ultérieure. Pour les versions 1.8.x et antérieures, utilisez plutôt la commande autonome.codedeploy-localPour plus d'informations sur la version, consultez Historique des versions de l' CodeDeploy agent. Pour en savoir plus sur l'installation, consultez Installation de l' CodeDeploy agent. -
Si vous déployez votre contenu à partir d'un compartiment ou d'un GitHub référentiel Amazon S3, configurez un utilisateur avec lequel vous pourrez l'utiliser CodeDeploy. Pour plus d'informations, consultez Étape 1 : Configuration.
-
Si vous déployez la révision de votre application à partir d'un compartiment Amazon S3, créez un compartiment Amazon S3 dans la région dans laquelle vous travaillez et appliquez une politique de compartiment Amazon S3 au compartiment. Cette stratégie accorde à vos instances les autorisations requises pour télécharger la révision d'application.
Par exemple, la politique de compartiment Amazon S3 suivante permet à toute instance Amazon EC2 associée à un profil d'instance IAM contenant l'ARN de
arn:aws:iam::444455556666:role/CodeDeployDemotélécharger n'importe où dans le compartiment Amazon S3 nommé :amzn-s3-demo-bucket{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }La politique de compartiment Amazon S3 suivante permet à toute instance sur site associée à un utilisateur IAM contenant l'ARN de
arn:aws:iam::444455556666:user/CodeDeployUsertélécharger depuis n'importe quel emplacement du compartiment Amazon S3 nommé :amzn-s3-demo-bucket{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }Pour plus d'informations sur la façon de générer et d'associer une politique de compartiment Amazon S3, consultez les exemples de politique de compartiment.
-
Si vous déployez la révision de votre application à partir d'un compartiment ou d'un GitHub référentiel Amazon S3, configurez un profil d'instance IAM et attachez-le à l'instance. Pour plus d'informations, consultez Étape 4 : Création d'un profil d'instance IAM pour vos instances Amazon EC2, Créez une instance Amazon EC2 pour ( CodeDeploy AWS CLI (ou console Amazon EC2) et Créez une instance Amazon EC2 pour ( CodeDeploy CloudFormation modèle).
-
Si vous déployez votre contenu depuis GitHub, créez un GitHub compte et un dépôt public. Pour créer un GitHub compte, consultez la section S'inscrire GitHub
. Pour créer un GitHub dépôt, voir Création d'un dépôt. Note
Les référentiels privés ne sont pas pris en charge pour l'instant. Si votre contenu est stocké dans un GitHub référentiel privé, vous pouvez le télécharger sur l'instance et utiliser l'
--bundle-locationoption pour spécifier son chemin local. -
Préparez le contenu (y compris un AppSpec fichier) que vous souhaitez déployer sur l'instance et placez-le sur l'instance locale, dans votre compartiment Amazon S3 ou dans votre GitHub référentiel. Pour plus d'informations, consultez Travailler avec les révisions d'applications pour CodeDeploy.
-
Si vous souhaitez utiliser des valeurs autres que les valeurs par défaut pour d'autres options de configuration, créez le fichier de configuration et placez-le sur l'instance (
/etc/codedeploy-agent/conf/codedeployagent.ymlpour les instances Amazon Linux, RHEL ou Ubuntu Server ouC:\ProgramData\Amazon\CodeDeploy\conf.ymlpour les instances Windows Server). Pour plus d'informations, consultez CodeDeploy référence de configuration de l'agent.Note
Si vous utilisez un fichier de configuration sur des instances Amazon Linux, RHEL ou Ubuntu Server, vous devez soit :
-
Utiliser les variables
:root_dir:et:log_dir:pour spécifier des emplacements autres que ceux par défaut pour les dossiers du répertoire de journaux et du répertoire racine du déploiement. -
sudoÀ utiliser pour exécuter les commandes de CodeDeploy l'agent.
-
Création d'un déploiement local
Sur l'instance où vous souhaitez créer le déploiement local, ouvrez une session de terminal (instances Amazon Linux, RHEL ou Ubuntu Server) ou une invite de commande (Windows Server) pour exécuter les commandes de l'outil.
Note
La codedeploy-agent deploy-local commande utilise le codedeploy-agent binaire aux emplacements suivants :
-
Sur Amazon Linux, RHEL ou Ubuntu Server :
/opt/codedeploy-agent/bin/codedeploy-agent. -
Sur Windows Server :
C:\ProgramData\Amazon\CodeDeploy\bin\codedeploy-agent.exe.
Pour des raisons de rétrocompatibilité, la codedeploy-local commande est également disponible aux mêmes emplacements :
-
Sur Amazon Linux, RHEL ou Ubuntu Server, la commande se trouve à
/opt/codedeploy-agent/bin/codedeploy-locall'adresse. -
Sur Windows Server, la commande se trouve à l'adresse
C:\ProgramData\Amazon\CodeDeploy\bin\codedeploy-local.exe.
La codedeploy-local [options] syntaxe continue de fonctionner et accepte les mêmes options quecodedeploy-agent deploy-local.
Syntaxe de base des commandes
codedeploy-agent deploy-local [options]
Résumé
codedeploy-agent deploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--deployment-group-name <value>] [--application-name <value>] [--events <comma-separated values>] [--agent-configuration-file <value>] [--appspec-filename <value>]
Options
-l, --bundle-location
Emplacement du bundle de la révision d'application. Si vous ne spécifiez pas d'emplacement, l'outil utilise par défaut le répertoire dans lequel vous travaillez actuellement. Si vous spécifiez une valeur pour --bundle-location, vous devez également en spécifier une pour --type.
Exemples de format pour l'emplacement du bundle :
-
Instance locale de serveur Amazon Linux, RHEL ou Ubuntu :
/path/to/local/bundle.tgz -
Instance Windows Server locale :
C:/path/to/local/bundle -
Compartiment Amazon S3 :
s3://amzn-s3-demo-bucket/bundle.tar -
GitHub référentiel :
https://github.com/account-name/repository-name/
-t, --type
Format du bundle de la révision d'application. Les types pris en charge incluent tgz, tar, zip et directory. Si vous ne spécifiez aucun type, l'outil utilise directory par défaut. Si vous spécifiez une valeur pour --type, vous devez également en spécifier une pour --bundle-location.
-b, --file-exists-behavior
Indique le traitement à appliquer aux fichiers qui existent déjà dans un emplacement cible du déploiement mais qui ne faisaient pas partie d'un précédent déploiement réussi. Les options incluent DISALLOW, OVERWRITE, RETAIN. Pour plus d'informations, consultez le fichier ExistsBehavior dans le Guide de référence des AWS CodeDeploy API.
-g, --deployment-group
Chemin du dossier constituant l'emplacement cible du contenu à déployer. Si vous ne spécifiez pas de dossier, l'outil en crée un nommé default-local-deployment-group dans votre répertoire racine de déploiement. Pour chaque déploiement local que vous créez, l'outil crée un sous-répertoire dans ce dossier avec des noms tels que local-1234 (où le numéro est l'ID du processus).
-d, --deployment-group-name
Le nom du groupe de déploiement exposé aux scripts Lifecycle-hook en tant que variable d'environnement. DEPLOYMENT_GROUP_NAME La valeur par défaut est LocalFleet .
-a, --nom-application
Nom de l'application exposée aux scripts Lifecycle-hook en tant que variable d'environnement. APPLICATION_NAME Par défaut, c'est l'emplacement du bundle.
-e, --events
Un ensemble de hooks d'événements de remplacement du cycle de vie que vous souhaitez exécuter, dans l'ordre, à la place des événements que vous avez répertoriés dans le AppSpec fichier. Plusieurs hooks peuvent être spécifiés, séparés par des virgules. Vous pouvez utiliser cette option si :
-
Vous souhaitez exécuter un ensemble d'événements différent sans avoir à mettre à jour le AppSpec fichier.
-
Vous souhaitez exécuter un hook d'événement unique en tant qu'exception au contenu du AppSpec fichier, par exemple
ApplicationStop.
Si vous ne spécifiez ni n'installez DownloadBundleles événements dans la liste de remplacement, ils s'exécuteront avant tous les hooks d'événements que vous spécifiez. Si vous incluez DownloadBundleet Installer dans la liste des --events options, elles doivent être précédées uniquement des événements qui s'exécutent normalement avant elles lors CodeDeploy des déploiements. Pour plus d'informations, consultez AppSpec section « crochets ».
-c, --agent-configuration-file
Emplacement d'un fichier de configuration à utiliser pour le déploiement, si vous le stockez à un emplacement autre que celui par défaut. Un fichier de configuration spécifie des options alternatives pour les autres valeurs et comportements par défaut dans le cadre d'un déploiement.
Par défaut, les fichiers de configuration sont stockés dans /etc/codedeploy-agent/conf/codedeployagent.yml (instances Amazon Linux, RHEL ou Ubuntu Server) ou C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). Pour de plus amples informations, veuillez consulter CodeDeploy référence de configuration de l'agent.
-A, --appspec-filename
Le nom du AppSpec fichier. Pour les déploiements locaux, les valeurs acceptées sont appspec.yml etappspec.yaml. Par défaut, le AppSpec fichier est appeléappspec.yml.
-h, --help
Affiche un résumé du contenu d'aide.
-v, --version
Affiche le numéro de version de l'outil.
Exemples
Voici des exemples de formats de commande valides.
codedeploy-agent deploy-local
codedeploy-agent deploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-agent deploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-agent deploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group
Déployez un bundle depuis Amazon S3 :
codedeploy-agent deploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
codedeploy-agent deploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group
Déployez un bundle à partir d'un GitHub dépôt public :
codedeploy-agent deploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-agent deploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-agent deploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-agent deploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip
Déploiement d'un bundle en spécifiant plusieurs événements de cycle de vie :
codedeploy-agent deploy-local --bundle-location /path/to/local/bundle.tar --type tar --deployment-group my-deployment-group --events DownloadBundle,Install,ApplicationStart,HealthCheck
Arrêtez une application précédemment déployée à l'aide de l'événement ApplicationStop du cycle de vie :
codedeploy-agent deploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group my-deployment-group --events ApplicationStop
Déploiement à l'aide d'un ID de groupe de déploiement spécifique :
codedeploy-agent deploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-agent deploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca