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.
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 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âche | Description | Compétences requises |
---|---|---|
Créez le référentiel. | AWSadministrateur système | |
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 AWS système |
Tâche | Description | Compétences requises |
---|---|---|
Nom du pipeline |
| Développeur d'applications, administrateur AWS système |