Yet another developer blog

🇫🇷 Créer une AMI avec Packer


Édité: 2023-07-06 10:41

Packer est un utilitaire créé par nos amis d’Hashicorp, les crĂ©ateurs de Terraform, afin de crĂ©er des images serveur dĂ©ployables vers n’importe quel cloud.

Ici, nous allons nous intĂ©resser Ă  comment crĂ©er une image EC2 (les serveurs d’AWS), c’est-Ă -dire une AMI sur AWS en crĂ©ant une image Ubuntu avec Docker et Docker-compose prĂ©-installĂ©.

Qu’est-ce qu’une AMI ?

AMI signifie Amazone Machine Images. Il s’agit d’une image de machine EC2 qui permet de lancer une instance rapidement. Les AMI sont très pratiques si vous avez besoin de reproduire une configuration Ă  plusieurs reprises.

Vous pourriez tout Ă  fait exĂ©cuter le mĂŞme script d’initialisation Ă  chaque nouvelle instance EC2. Ou bien, en utilisant une AMI vous gagnez en simplicitĂ© et en temps en ayant une machine dĂ©jĂ  configurĂ© selon vos besoins.

C’est quoi Packer ?

Packer vous permet donc de crĂ©er aisĂ©ment des images Ă  l’aide de fichier de configuration. Cette approche sous forme de code est très pratique pour permettre de versionner ces images.

Installation

Je suis sous MacOS. Vous pouvez retrouver les autres commandes ici.

Installons Packer Ă  l’aide de Brew :

1brew install packer

Pour vĂ©rifier que l’installation s’est bien passĂ©e :

1packer

Devrait vous sortir :

 1Usage: packer [--version] [--help] <command> [<args>]
 2
 3Available commands are:
 4    build           build image(s) from template
 5    console         creates a console for testing variable interpolation
 6    fix             fixes templates from old versions of packer
 7    fmt             Rewrites HCL2 config files to canonical format
 8    hcl2_upgrade    transform a JSON template into an HCL2 configuration
 9    init            Install missing plugins or upgrade plugins
10    inspect         see components of a template
11    plugins         Interact with Packer plugins and catalog
12    validate        check that a template is valid
13    version         Prints the Packer version

CrĂ©ation de l’image

Dans un nouveau dossier packer, créons un fichier docker-ami.pkr.hcl. Ouvrons le avec notre IDE favoris et commenc

Déploiement

Nous allons maintenant voir comment créer notre AMI.

Tout d’abord il faut initialiser le rĂ©pertoire :

1packer init .

Cela permet Ă  Packer d’installer les plug-ins que nous avons dĂ©fini dans le bloc packer. Il faut relancer la commande si vous avez modifier ce dernier.

Un petit coup de formatage :

1packer fmt .

Et nous validons le fichier :

1packer validate .

Si Packer nous dit The configuration is valid., nous pouvons lancer la crĂ©ation de l’image :

1packer build docker-ami.pkr.hcl
Édité: 2023-07-06 10:41
Add AMI article