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.
Ce didacticiel vous aide à créer une action de déploiement CodePipeline qui déploie votre code sur les instances que vous avez configurées sur Amazon EC2.
Note
Dans le cadre de la création d'un pipeline dans la console, un compartiment d'artefacts S3 sera utilisé par CodePipeline pour les artefacts. (Ceci est différent du compartiment utilisé pour une action source S3.) Si le compartiment d'artefacts S3 se trouve dans un compte différent de celui de votre pipeline, assurez-vous que le compartiment d'artefacts S3 appartient Comptes AWS à une personne sûre et fiable.
Note
L'action de EC2
déploiement n'est disponible que pour les pipelines de type V2.
Prérequis
Avant de pouvoir créer votre pipeline de déploiement continu à l'aide de ce didacticiel, vous devez avoir mis en place certaines ressources. Voici ce dont vous avez besoin pour commencer :
Note
Toutes ces ressources devraient être créées au sein de la même AWS région.
-
Un référentiel de contrôle de source (utilisé dans ce didacticiel GitHub) dans lequel vous ajouterez un exemple de
script.sh
fichier. -
Vous devez utiliser un rôle de CodePipeline service existant qui a été mis à jour avec les autorisations nécessaires pour cette action. Pour mettre à jour votre rôle de service, consultezPolitique des rôles de service et autorisations pour l'action de EC2 déploiement.
Dès lors que ces prérequis sont respectés, vous pouvez commencer à créer votre pipeline de déploiement continu à l'aide du didacticiel.
Étape 1 : créer des instances Amazon EC2 Linux
Au cours de cette étape, vous créez les EC2 instances Amazon dans lesquelles vous déploierez un exemple d'application. Dans le cadre de ce processus, créez un rôle d'instance dans IAM, si vous n'en avez pas déjà créé un dans la région où vous souhaitez créer des ressources.
Pour créer un rôle d'instance
-
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
). -
Dans le tableau de bord de la console, choisissez Rôles.
-
Sélectionnez Créer un rôle.
-
Sous Sélectionner le type d'entité de confiance, sélectionnez Service AWS. Sous Choisir un cas d'utilisation, sélectionnez EC2. Sous Sélectionnez votre cas d'utilisation, choisissez EC2. Choisissez Suivant : Autorisations.
-
Recherchez et sélectionnez la politique nommée
AWSSystemsManagerDefaultEC2InstanceManagementRoleeployAction
. -
Recherchez et sélectionnez la politique nommée
AmazonSSMManagedInstanceCore
. Choisissez Suivant : Balises. -
Choisissez Suivant : Vérification. Saisissez un nom pour le rôle (par exemple,
EC2InstanceRole
).Note
Notez le nom de votre rôle pour l'étape suivante. Vous choisissez ce rôle lorsque vous créez votre instance.
Note
Vous allez ajouter des autorisations à ce rôle afin de permettre l'accès au compartiment d'artefacts S3 pour votre pipeline après la création du pipeline.
Sélectionnez Créer un rôle.
Pour lancer des instances
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Dans la navigation latérale, choisissez Instances, puis sélectionnez Launch instances en haut de la page.
-
Pour Name (Nom), entrez
MyInstances
. Cela affecte à l'instance une balise Key ofName
et une balise Value deMyInstances
. -
Sous Images de l'application et du système d'exploitation (Amazon Machine Image), recherchez l'option AMI Amazon Linux avec le AWS logo et assurez-vous qu'elle est sélectionnée. (Cette AMI est décrite comme l'AMI Amazon Linux 2 (HVM) et est étiquetée « éligible au niveau gratuit ».)
-
Sous Type d'instance, choisissez le
t2.micro
type éligible au niveau gratuit comme configuration matérielle de votre instance. -
Sous Paire de clés (connexion), choisissez une paire de clés ou créez-en une.
-
Sous Paramètres réseau, assurez-vous que le statut est Activé.
-
Développez Advanced Details (Détails avancés). Dans le profil d'instance IAM, choisissez le rôle IAM que vous avez créé lors de la procédure précédente (par exemple,
EC2InstanceRole
).Note
Ne laissez pas le rôle d'instance vide car cela crée un rôle par défaut et ne sélectionne pas le rôle que vous avez créé.
-
Sous Résumé, sous Nombre d'instances, entrez
2
. -
Choisissez Launch instance (Lancer une instance).
-
Sur la page Instances, vous pouvez afficher le statut du lancement. Lorsque vous lancez une instance, son état initial est
pending
. Une fois que l'instance a démarré, son état devientrunning
et elle reçoit un nom DNS public. (Si la colonne DNS public ne s'affiche pas, choisissez l'icône Afficher/Masquer, puis sélectionnez DNS public.)
Étape 2 : ajouter des autorisations de bucket d'artefacts au rôle d' EC2 instance
Vous devez mettre à jour le rôle d' EC2 instance que vous avez créé pour votre instance afin de lui permettre d'accéder au bucket d'artefacts de votre pipeline.
Note
Lorsque vous créez l'instance, vous créez ou utilisez un rôle d' EC2 instance existant. Pour éviter les Access Denied
erreurs, vous devez ajouter des autorisations de compartiment S3 au rôle d'instance afin de donner à l'instance des autorisations d'accès au compartiment d' CodePipeline artefacts. Créez un rôle par défaut ou mettez à jour votre rôle existant avec l's3:GetObject
autorisation limitée au compartiment d'artefacts correspondant à la région de votre pipeline.
-
Accédez à votre pipeline dans la CodePipeline console. Sélectionnez Paramètres. Affichez le nom et l'emplacement du magasin d'artefacts d'un pipeline existant. Notez le nom de ressource Amazon (ARN) du compartiment d'artefacts et copiez-le.
-
Accédez à la console IAM, puis choisissez Roles (Rôles). Choisissez le rôle d'instance que vous avez créé à l'étape 1 de ce didacticiel.
-
Sous l'onglet Autorisations, sélectionnez Ajouter une politique en ligne.
-
Ajoutez le code JSON suivant au document de politique, en remplaçant la valeur du
Resource
champ par l'ARN du bucket.{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::
BucketName
" } -
Choisissez Mettre à jour.
Étape 3 : ajouter un fichier de script à votre dépôt
Collez cet exemple de texte pour créer votre script.sh
fichier pour l'étape post-script du déploiement.
echo "Hello World!"
Pour ajouter un fichier script.sh
à votre référentiel source
-
Ouvrez un éditeur de texte, puis copiez-collez le fichier ci-dessus dans un nouveau fichier.
-
Validez votre fichier
script.sh
et transmettez-le à votre référentiel source.-
Ajoutez le fichier.
git add .
-
Validez la modification.
git commit -m "Adding script.sh."
-
Transmettez la validation.
git push
Notez le chemin dans votre dépôt.
/MyDemoRepo/test/script.sh
-
Étape 4 : Création de votre pipeline
Utilisez l' CodePipeline assistant pour créer les étapes de votre pipeline et connecter votre référentiel source.
Pour créer le pipeline
Ouvrez la CodePipeline console à l'adresse https://console.aws.amazon.com/codepipeline/
. -
Sur la page Bienvenue, la page Démarrez ou la page Pipelines, choisissez Créer un pipeline.
-
Sur la page Étape 1 : Choisir une option de création, sous Options de création, choisissez l'option Créer un pipeline personnalisé. Choisissez Suivant.
-
À l'étape 2 : Choisissez les paramètres du pipeline, dans Nom du pipeline, entrez
MyPipeline
. -
CodePipeline fournit des pipelines de type V1 et V2, dont les caractéristiques et le prix diffèrent. Le type V2 est le seul type que vous pouvez choisir dans la console. Pour plus d'informations, consultez la section Types de pipelines. Pour plus d'informations sur la tarification CodePipeline, consultez la section Tarification
. -
Dans Rôle de service, choisissez Utiliser le rôle de service existant, puis choisissez le rôle de CodePipeline service qui a été mis à jour avec les autorisations requises pour cette action. Pour configurer votre rôle CodePipeline de service pour cette action, consultezPolitique des rôles de service et autorisations pour l'action de EC2 déploiement.
-
Laissez les paramètres sous Advanced settings (Paramètres avancés) à leurs valeurs par défaut, puis choisissez Suivant.
-
Sur la page Étape 3 : Ajouter un stage source, ajoutez un stage source :
-
Dans Source provider, sélectionnez GitHub (via GitHub App).
-
Sous Connexion, choisissez une connexion existante ou créez-en une nouvelle. Pour créer ou gérer une connexion pour votre action GitHub source, consultezGitHub connexions.
-
Dans Nom du référentiel, choisissez le nom de votre référentiel GitHub .
Choisissez Suivant.
-
-
Sur la page Étape 4 : Ajouter une phase de construction, choisissez Ignorer.
-
Sur la page Étape 5 : Ajouter une phase de déploiement, sélectionnez EC2.
-
Pour le répertoire cible, entrez le répertoire de l'instance vers laquelle vous souhaitez effectuer le déploiement, par exemple
/home/ec2-user/testhelloworld
.Note
Spécifiez le répertoire de déploiement que vous souhaitez que l'action utilise sur l'instance. L'action automatisera la création du répertoire spécifié sur l'instance dans le cadre du déploiement.
-
Pour PostScript, entrez le chemin et le nom de fichier de votre script, par exemple
test/script.sh
. -
Choisissez Suivant.
-
-
Sur la page Étape 6 : Vérification, vérifiez la configuration de votre pipeline, puis choisissez Créer un pipeline pour créer le pipeline.
-
Une fois le pipeline exécuté avec succès, choisissez Afficher les détails pour afficher les journaux de l'action afin de visualiser le résultat de l'action de calcul gérée.
Étape 5 : Testez votre pipeline
Votre pipeline doit disposer de tous les éléments nécessaires pour exécuter un déploiement AWS continu end-to-end natif. À présent, testez sa fonctionnalité en transmettant une modification de code à votre référentiel source.
Pour tester votre pipeline
-
Apportez une modification de code au référentiel source que vous avez configuré, validez-la, puis transmettez-la.
Ouvrez la CodePipeline console à l'adresse https://console.aws.amazon.com/codepipeline/
. -
Choisissez votre pipeline dans la liste.
-
Observez la progression du pipeline dans ses différentes phases. Votre pipeline doit être terminé et votre action déploie le script sur vos instances.
-
Pour plus d'informations sur la résolution des problèmes, consultezEC2 L'action de déploiement échoue avec un message d'erreur No such file.