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.