Monter facilement un environnement de développement pour Ansible en utilisant Vagrant

D'abord, on défini une instance Vagrant basée sur debian bullseye (11) via ce VagrantFile (Ici on utilise le fournisseur libvirt, mais vous pouver sûrement utiliser celui que vous voulez - j'en ai pas testé d'autres) :

$script = <<SCRIPT

# installe les dépendances pour Ansible
apt-get update -y && apt-get install -y python3

# On s'assure que tout est bien installé
apt --fix-broken install -y

SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provider "libvirt" do |v|
    v.memory = 512
    v.cpus = 1
  end
  # disable NFS sharing
  config.vm.synced_folder ".", "/vagrant" , disabled: true
  config.vm.provision "shell", inline: $script
  config.vm.box = "debian/bullseye64"
end

Puis, on lance l'instance Vagrant:

vagrant up

Puis, on va créer un fichier de configuration ssh `ssh_config` qui sera consommé par le client ssh d'Ansible :

vagrant ssh-config > ssh_config

Et enfin dans l'inventaire Ansible, on ajoute cette machine (adapter `/home/user/chemin/vers/ssh_config` pour pointer vers le fichier `ssh_config` créé ci-avant) :

vagrant_1 ansible_host=default ansible_user=vagrant ansible_ssh_common_args="-F /home/user/chemin/vers/ssh_config"

Et voilà, on a un environnement reproductible, simple et très rapide à mettre en place.

A noter qu'on peut aussi provisionner une instance Vagrant avec Ansible. Mais c'est un autre sujet.