Packer-2.1 (Création d'images personalisées d'instances sur Google Cloud )

Objectifs:
🎯 automatiser la création d'images docker sur GCP.

Prérequis:
💡 connaître ubuntu.


logo outill devops packer

Pour créer des instances sur google cloud il est possible d'utiliser des images publiques (ubuntu , debian etc ...) ou utiliser des images personalisées.

1. Il vous faut créer un projet.

Tapez 'projet' dans la barre de recherche

création de projet sur GCP (Google Cloud Platform)

Sélectionnez 'créer un projet'.

création de projet sur le provider cloud GCP (Google Cloud Platform)

Donnez un nom à votre projet (ce sera 'My first project' de mon coté) .

Création de projet sur le provider cloud GCP (Google Cloud Platform)

2. Il vous faut créer un compte de service pour le projet.

Tapez 'compte de service' dans la barre de recherche

Création d'un compte de service sur le provider cloud GCP (Google Cloud Platform)

Sélectionnez 'compte de service (IAM et administration)'.

Création d'un compte de service sur le provider cloud GCP (Google Cloud Platform)

Donnez un nom et une description à votre compte de service.

Création d'un compte de service sur le provider cloud  GCP (Google Cloud Platform)

Donnez à votre compte de service les rôles 'Administrateur d'instances Compute Engine' et 'Utilisateur du compte de service'.

Création d'un compte de service sur le provider cloud GCP (Google Cloud Platform)

Cliquez sur le compte de service que vous venez de créer.

Création d'un compte de service sur le provider cloud GCP (Google Cloud Platform)

Cliquez sur ajouter clé -> créer une clé puis choisir le format json.

Création d'un compte de service sur le provider cloud GCP (Google Cloud Platform)

Un fichier json sera téléchargé, conservez le bien, j'ai mis le mien dans le même dossier que mon template packer que nous allons parcourir ensemble.

Création d'un compte de service sur le provider cloud GCP (Google Cloud Platform)

3. Il vous faut créer le fichier de configuration pour packer.

Voici le template packer que nous allons utiliser.

Exempe d'un template de l'outil devops packer à utiliser pour déployer une image système sur le probider cloud GCP (Google Cloud Platform)

Comme vu dans le chapitre précédent packer permet de builder des images sur différents providers.
les champs obligatoires sont les suivants:

  • type: Plateforme cible
  • account_file: clé json téléchargée pour utiliser un compte de service spécifique
  • project_id: Projet parent de l'image
  • source_image: Image à utiliser comme base pour notre image
  • ssh_username: Nom de l'utilisateur à utiliser pour une connexion ssh (pour créer l'image une instance sera crée et sera ensuite snapshoté)
  • zone: zone de l'image

  • Vous avez sans doute constaté que dans mon template json j'ai utilisé des champs supplémentaires qui sont des champs optionnels (image_name, disk_size, etc...)

    Je vous laisse le soin de découvrir l'ensemble des arguments disponibles sur le site officiel et de faire vos tests