Aller au contenu

Lab 04 : Utilisation des provisioners

Utiliser différents provisioners pour configurer les instances créées par Packer.

Dans cette partie, vous allez apprendre à :

  • Ajouter un provisioner Shell dans votre template Packer
  • Ajouter un provisioner Ansible pour exécuter un playbook
  1. Reprenez le template Packer du lab02
  2. Installez Ansible
Terminal window
pip install ansible --user

Dans le template ajoutez :

  • un provisioner Shell pour mettre à jour tous les packages.
  • un provisioner Ansible pour exécuter un playbook :

Le contenu du fichier playbook.yml :

- hosts: all
become: true
tasks:
- name: Install Nginx
apt:
name: nginx
state: present
update_cache: true

Exécutez la commande suivante pour lancer la construction avec les provisioners :

Terminal window
packer build template.pkr.hcl

En cas d’erreur de copie de fichier sur la machine distante, créez ce fichier de configuration Ansible ansible.cfg :

control_path = %(directory)s/%%h-%%p-%%r
pipelining = true
scp_extra_args = -O
scp_if_ssh = true
ssh_args = -o ControlMaster=auto -o ControlPersist=600s
transfer_method = smart
display_failed_stderr = true
forks = 20
host_key_checking = false
interpreter_python = auto
nocows = 1
remote_tmp = $HOME/.ansible/tmp
retry_files_enabled = false

Ajouter un provisioner qui se charge de réduire la taille de l’image, de supprimer des fichiers inutiles, …