View a markdown version of this page

Tutoriel : Déploiement sur des instances Amazon EC2 avec CodePipeline - AWS CodePipeline

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.

Tutoriel : Déploiement sur des instances Amazon EC2 avec CodePipeline

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 dans 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 les artefacts. (Ce compartiment 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 société sûre et fiable.

Note

L'action de EC2 déploiement n'est disponible que pour les pipelines de type V2.

Conditions préalables

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.

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éation d'instances Amazon EC2 Linux

Au cours de cette étape, vous allez créer les instances Amazon EC2 dans lesquelles vous allez déployer un exemple d'application. Dans le cadre de ce processus, créez un rôle d'instance dans IAM, si vous n'avez pas encore créé de rôle d'instance dans la région où vous souhaitez créer des ressources.

Pour créer un rôle d'instance
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le tableau de bord de la console, choisissez Rôles.

  3. Choisissez Créer un rôle.

  4. Sous Sélectionner le type d'entité de confiance, sélectionnez Service AWS. Dans Choisir un cas d'utilisation, sélectionnez EC2. Sous Select your use case (Sélectionner votre cas d'utilisation), choisissez EC2. Choisissez Suivant.

  5. Recherchez et sélectionnez la politique nommée AmazonSSMManagedEC2InstanceDefaultPolicy.

  6. Recherchez et sélectionnez la politique nommée AmazonSSMManagedInstanceCore. Choisissez Suivant : Balises.

  7. 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 sa création.

    Choisissez Créer un rôle.

Pour lancer des instances
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans la navigation latérale, choisissez Instances, puis sélectionnez Lancer des instances en haut de la page.

  3. Pour Name (Nom), entrez MyInstances. Cela affecte à l'instance une clé de balise de Name et une valeur de balise deMyInstances.

  4. Sous Images de l'application et du système d'exploitation (Amazon Machine Image), recherchez l'option Amazon Linux AMI 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 ».)

  5. Dans Type d'instance, choisissez le t2.micro type éligible au niveau gratuit comme configuration matérielle de votre instance.

  6. Sous Paire de clés (connexion), choisissez une paire de clés ou créez-en une.

  7. Dans Paramètres réseau, assurez-vous que l'état est Activé.

  8. 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éé.

  9. Dans Résumé, sous Nombre d'instances, saisissez2.

  10. Choisissez Launch instance (Lancer une instance).

  11. 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 devient running et elle reçoit un nom DNS public. (Si la colonne DNS public n'est pas affichée, choisissez l'Show/Hideicône, puis sélectionnez DNS public.)

Étape 2 : ajouter des autorisations de compartiment d'artefacts au rôle d'instance EC2

Vous devez mettre à jour le rôle d'instance EC2 que vous avez créé pour votre instance afin de lui permettre d'accéder au compartiment d'artefacts de votre pipeline.

Note

Lorsque vous créez l'instance, vous créez ou utilisez un rôle d'instance EC2 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:GetObjectautorisation limitée au compartiment d'artefacts pour la région de votre pipeline.

  1. Accédez à votre pipeline dans la CodePipeline console. Cliquez sur Paramètres. Afficher le nom et l'emplacement du magasin d'artefacts d'un pipeline existant. Prenez note du bucket d'artefacts Amazon Resource Name (ARN) et copiez-le.

  2. 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.

  3. Sous l'onglet Autorisations, sélectionnez Ajouter une politique en ligne.

  4. 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" }
  5. Choisissez Mettre à jour.

Étape 3 : ajouter un fichier de script à votre référentiel

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 script.sh fichier dans votre référentiel source
  1. Ouvrez un éditeur de texte, puis copiez et collez le fichier ci-dessus dans un nouveau fichier.

  2. Validez votre fichier script.sh et transmettez-le à votre référentiel source.

    1. Ajoutez le fichier.

      git add .
    2. Validez la modification.

      git commit -m "Adding script.sh."
    3. Transmettez la validation.

      git push

    Notez le chemin dans votre référentiel.

    /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
  1. Ouvrez la CodePipeline console à l'adresse https://console.aws.amazon.com/codepipeline/.

  2. Sur la page Bienvenue, la page Démarrez ou la page Pipelines, choisissez Créer un pipeline.

  3. Sur la page Étape 1 : Choisissez l'option de création, sous Options de création, choisissez l'option Créer un pipeline personnalisé. Choisissez Suivant.

  4. À l'étape 2 : choisissez les paramètres du pipeline, dans Nom du pipeline, entrezMyPipeline.

  5. CodePipeline fournit des pipelines de type V1 et V2, dont les caractéristiques et le prix diffèrent. Le type V2 est le seul que vous pouvez choisir dans la console. Pour plus d’informations, consultez types de pipeline. Pour plus d'informations sur la tarification de CodePipeline, consultez la section Tarification.

  6. 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, consultezAutorisations relatives à la politique de rôle de service pour l'action de déploiement d'EC2.

  7. Laissez les paramètres sous Advanced settings (Paramètres avancés) à leurs valeurs par défaut, puis choisissez Suivant.

  8. Sur la page Étape 3 : Ajouter une étape source, ajoutez une étape source :

    1. Dans Source provider, choisissez GitHub (via GitHub App).

    2. 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.

    3. Dans Nom du référentiel, choisissez le nom de votre référentiel GitHub .

    Choisissez Suivant.

  9. Sur la page Étape 4 : Ajouter une étape de construction, choisissez Ignorer.

  10. Sur la page Étape 5 : Ajouter une phase de déploiement, choisissez EC2.

    Ajoutez une action de déploiement EC2 à votre pipeline.
    1. Pour le répertoire cible, entrez le répertoire de l'instance sur 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.

    2. Pour PostScript, entrez le chemin et le nom de fichier de votre script, par exempletest/script.sh.

    3. Choisissez Suivant.

  11. 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.

    Schéma de console illustrant l'exécution réussie d'un pipeline avec l'action de déploiement ajoutée à votre pipeline.
  12. Une fois le pipeline exécuté avec succès, choisissez Afficher les détails pour afficher les journaux de l'action afin d'afficher le résultat de l'action de calcul gérée.

    Consultez les journaux relatifs à l'action de déploiement d'Amazon EC2 dans votre pipeline.
    Consultez la deuxième page des journaux relatifs à l'action de déploiement d'Amazon EC2 dans votre pipeline.

Étape 5 : Testez votre pipeline

Votre pipeline doit disposer de tous les éléments nécessaires pour exécuter un déploiement AWS continu natif de bout en bout. À présent, testez sa fonctionnalité en transmettant une modification de code à votre référentiel source.

Pour tester votre pipeline
  1. Apportez une modification de code au référentiel source que vous avez configuré, validez-la, puis transmettez-la.

  2. Ouvrez la CodePipeline console à l'adresse https://console.aws.amazon.com/codepipeline/.

  3. Choisissez votre pipeline dans la liste.

  4. Observez la progression du pipeline dans ses différentes phases. Votre pipeline devrait être terminé et votre action déploiera le script sur vos instances.

  5. Pour plus d'informations sur la résolution des problèmes, consultezL'action EC2 Deploy échoue avec un message d'erreur Aucun fichier de ce type.