Création d'un pipeline CodePipeline et AMI utilisation d'un HashiCorp packer - Recommandations AWS

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.

Création d'un pipeline CodePipeline et AMI utilisation d'un HashiCorp packer

Créée par Akash Kumar () AWS

Environnement : PoC ou pilote

La source : DevOps

Cible : Amazon Machine Images (AMI)

Type R : Rehost

Charge de travail : toutes les autres charges de travail

Technologies : DevOps ; Modernisation ; Applications Web et mobiles

Récapitulatif

Remarque : n' AWS CodeCommit est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. En savoir plus

Ce modèle fournit des exemples de code et des étapes pour créer à la fois un pipeline dans le cloud Amazon Web Services (AWS) en utilisant AWS CodePipeline et une image machine Amazon (AMI) en utilisant HashiCorp Packer. Le modèle est basé sur la pratique d'intégration continue, qui automatise la création et le test du code avec un système de contrôle de version basé sur Git. Dans ce modèle, vous créez et clonez un dépôt de code en utilisant AWS CodeCommit. Créez ensuite un projet et configurez votre code source en utilisant AWS CodeBuild. Enfin, créez une annonce AMI qui sera validée dans votre dépôt.

Conditions préalables et limitations

Prérequis

  • Un AWS compte actif

  • Un Amazon Linux AMI pour le lancement d'instances Amazon Elastic Compute Cloud (AmazonEC2)

  • HashiCorp Packer 0.12.3 ou version ultérieure

  • Amazon CloudWatch Events (facultatif)

  • Amazon CloudWatch Logs (facultatif)

Architecture

Le schéma suivant montre un exemple de code d'application qui automatise la création d'un AMI en utilisant l'architecture de ce modèle.

Automatisez la création d'unAMI.

Le schéma suivant illustre le flux de travail suivant :

  1. Le développeur valide les modifications de code dans un dépôt CodeCommit Git privé. CodePipeline Utilisez-le ensuite CodeBuild pour lancer la génération et ajouter de nouveaux artefacts prêts à être déployés dans le compartiment Amazon Simple Storage Service (Amazon S3).

  2. CodeBuild utilise Packer pour les regrouper et les emballer sur la AMI base d'un JSON modèle. Si cette option est activée, CloudWatch Events peut démarrer automatiquement le pipeline lorsqu'une modification survient dans le code source.

Pile technologique

  • CodeBuild

  • CodeCommit

  • CodePipeline

  • CloudWatch Événements (facultatif)

Outils

  • AWS CodeBuild— AWS CodeBuild est un service de création entièrement géré dans le cloud. CodeBuild compile votre code source, exécute des tests unitaires et produit des artefacts prêts à être déployés.

  • AWS CodeCommit— AWS CodeCommit est un service de contrôle de version qui vous permet de stocker et de gérer de manière privée des référentiels Git dans le AWS cloud. CodeCommit vous n'avez plus à gérer votre propre système de contrôle de source ou à vous soucier de la mise à l'échelle de son infrastructure.

  • AWS CodePipeline— AWS CodePipeline est un service de livraison continue que vous pouvez utiliser pour modéliser, visualiser et automatiser les étapes nécessaires à la publication de votre logiciel.

  • HashiCorp Packer — HashiCorp Packer est un outil open source permettant d'automatiser la création d'images de machine identiques à partir d'une configuration source unique. Packer est léger, fonctionne sur tous les principaux systèmes d'exploitation et crée des images de machine pour plusieurs plateformes en parallèle.

Code

Ce modèle inclut les pièces jointes suivantes :

  • buildspec.yml— Ce fichier est utilisé CodeBuild pour créer et créer un artefact à déployer.

  • amazon-linux_packer-template.json— Ce fichier utilise Packer pour créer un Amazon Linux. AMI

Épopées

TâcheDescriptionCompétences requises

Créez le référentiel.

Créez un CodeCommit référentiel.

AWSadministrateur système

Pour cloner le référentiel.

Connectez-vous au CodeCommit référentiel en le clonant.

Développeur d'applications

Transférez le code source vers le dépôt distant.

  1. Créez un commit pour ajouter les amazon-linux_packer-template.json fichiers buildspec.yml et à votre dépôt local.

  2. Transférez le commit de votre dépôt local vers le CodeCommit référentiel distant.

Développeur d'applications
TâcheDescriptionCompétences requises

Créez un projet de génération.

  1. Connectez-vous à la console AWS de gestion, ouvrez la AWS CodeBuild console, puis choisissez Create build project.

  2. Dans Nom du projet, entrez le nom de votre projet.

  3. Dans le champ Source provider, sélectionnez AWS CodeCommit.

  4. Pour Repository, choisissez le référentiel dans lequel vous souhaitez créer le pipeline de code.

  5. Pour Image d'environnement, choisissez Image gérée ou Image personnalisée.

  6. Pour Système d'exploitation, choisissez Ubuntu.

  7. Pour RunTime(s), choisissez Standard.

  8. Pour Image, choisissez aws/codebuild/standard : 4.0.

  9. Pour la version image, choisissez Toujours utiliser la dernière image pour cette version d'exécution.

  10. Dans Environnement, choisissez Linux.

  11. Cochez la case Privileged.

  12. Pour Rôle de service, choisissez Nouveau rôle de service ou Rôle de service existant.

  13. Pour les spécifications de construction, choisissez Utiliser un fichier de spécification de construction ou Insérer des commandes de construction.

  14. (Facultatif) Dans le champ Type dans la section Artefacts, sélectionnez Aucun artefact.

  15. (Recommandé) Pour télécharger les journaux de sortie de build dans CloudWatch Logs, sélectionnez CloudWatch logs.

  16. (Facultatif) Pour télécharger les journaux de sortie de build sur Amazon S3, cochez la case Journaux S3.

  17. Choisissez Créer un projet de génération.

Développeur d'applications, administrateur AWS système
TâcheDescriptionCompétences requises

Nom du pipeline

  1. Connectez-vous à la console AWS de gestion, ouvrez la AWS CodePipeline console, puis choisissez Create pipeline.

  2. Dans Nom du pipeline, entrez un nom pour le pipeline.

  3. Pour Rôle de service, choisissez Nouveau rôle de service ou Rôle de service existant.

  4. Dans le champ Role name (Nom de rôle), saisissez un nom pour votre rôle.

  5. Dans la section Paramètres avancés, pour le magasin d'artifacts, choisissez Emplacement par défaut si vous souhaitez qu'Amazon S3 crée un compartiment et y stocke les artefacts. Pour utiliser un compartiment S3 existant, choisissez Emplacement personnalisé. Choisissez Suivant.

  6. Dans le champ Source provider, sélectionnez AWS CodeCommit.

  7. Dans Nom du référentiel, choisissez le référentiel que vous avez cloné précédemment. Dans Nom de la branche, choisissez votre branche de code source.

  8. Pour les options de détection des modifications, choisissez Amazon CloudWatch Events (recommandé) pour démarrer le pipeline ou AWS CodePipelinepour vérifier régulièrement les modifications. Choisissez Suivant.

  9. Pour Fournisseur de génération, choisissez AWS CodeBuild.

  10. Dans Nom du projet, choisissez le projet de construction que vous avez créé dans l'épopée Créer un CodeBuild projet pour l'application.

  11. Choisissez vos options de compilation, puis cliquez sur Suivant.

  12. Choisissez Ignorer l'étape de déploiement.

  13. Choisissez Créer un pipeline.

Développeur d'applications, administrateur AWS système

Ressources connexes

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip