A restructurer
Ce contenu a été déplacé depuis le tutoriel GCP. Il sera restructure dans une version ultérieure.
Build et validation¶
Lancement du build Packer et vérification de l'image créée.
Lancer le build¶
Assurez-vous d'être dans le répertoire packer-gcp/ et que vos credentials sont configurees (voir Souverainete GCP).
Avec une clé JSON (méthode A)¶
Avec WIF (méthode B)¶
Déroulement du build¶
Packer exécuté les étapes suivantes :
- Crée une VM temporaire dans la zone configurée
- Attend la connexion SSH à la VM
- Exécuté Ansible pour provisionner la VM (installation Docker + Compose)
- Arrêté la VM et crée une image à partir du disque
- Supprimé la VM temporaire
Le build dure généralement 5 a 10 minutes.
Lire les logs¶
Pendant le build, Packer affiche les logs en temps réel :
==> googlecompute.docker-server: Creating instance...
==> googlecompute.docker-server: Waiting for SSH to become available...
==> googlecompute.docker-server: Connected to SSH!
==> googlecompute.docker-server: Provisioning with Ansible...
googlecompute.docker-server: PLAY [Provisionner l'image Docker Server] ****
googlecompute.docker-server: TASK [docker : Installer les dependances] ****
googlecompute.docker-server: changed: [default]
...
googlecompute.docker-server: PLAY RECAP ****
googlecompute.docker-server: default: ok=7 changed=6 unreachable=0 failed=0
==> googlecompute.docker-server: Deleting instance...
Build 'googlecompute.docker-server' finished after 6 minutes 32 seconds.
Troubleshooting¶
Permission denied¶
Cause : le service account n'a pas les bons rôles. Fix : verifiez les rôles dans Réseau & Sécurité GCP.
API not enabled¶
Fix :
SSH timeout¶
Causes possibles :
- Règles de firewall bloquant le port 22
- L'image source n'a pas de serveur SSH
Fix : verifiez les règles de firewall :
Universe domain mismatch¶
Cause : le universe_domain dans Packer ne correspond pas a celui configuré dans gcloud. Fix : verifiez la cohérence entre docker-server.auto.pkrvars.hcl et gcloud config get-value universe/domain.
Quota exceeded¶
Fix : demandez une augmentation de quota ou utilisez une zone différente.
Vérifier l'image¶
Après un build réussi, listez les images de la famille docker-server :
gcloud compute images list --filter="family=docker-server" --format="table(name,family,status,creationTimestamp)"
Attendu :
Livrable¶
Checklist
Avant de passer à la suite, verifiez que :
-
packer build .s'est termine avec le message Build finished - L'image apparait dans
gcloud compute images list --filter="name~docker" - Le statut de l'image est READY
- Les logs ne contiennent pas de warnings Ansible critiques