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 et d'une AMI à l'aide de CodePipeline and HashiCorp Packer
Créée par Akash Kumar (AWS)
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) à l'aide d'AWS CodePipeline et une image machine Amazon (AMI) à l'aide de HashiCorp Packer. Le modèle est basé sur la pratique de l'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 référentiel de code à l'aide d'AWS CodeCommit. Créez ensuite un projet et configurez votre code source à l'aide d'AWS CodeBuild. Enfin, créez une AMI qui sera validée dans votre référentiel.
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Une AMI Amazon Linux pour le lancement d'instances Amazon Elastic Compute Cloud (Amazon EC2)
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'une AMI en utilisant l'architecture de ce modèle.

Le schéma suivant illustre le flux de travail suivant :
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).
CodeBuild utilise Packer pour regrouper et empaqueter l'AMI en fonction d'un modèle JSON. 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 cloud AWS. 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 une AMI Amazon Linux.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez le référentiel. | Administrateur système AWS | |
Pour cloner le référentiel. | Développeur d’applications | |
Transférez le code source vers le dépôt distant. |
| Développeur d’applications |
Tâche | Description | Compétences requises |
---|---|---|
Créez un projet de génération. |
| Développeur d'applications, administrateur système AWS |
Tâche | Description | Compétences requises |
---|---|---|
Nom du pipeline |
| Développeur d'applications, administrateur système AWS |