Après une formation de 3 jours, voici un mémo post formation qui me sert de révision. Donc Ansible comme Salt, Puppet est une solution d'automatisation des taches. Il n'utilise pas d'agent et se base uniquement sur une connexion SSH sur les cibles (SSH ou WinRM pour les cibles Windows) et python. Pour que cela foncionne sans prise de tete il faut donc que les cibles aient un compte avec un acces par clé. IL EST FORTEMENT D'ECONSEILLE D'UTILISER LE COMPTE ROOT !!! Mais comme la plupart des commandes nécessitent une élévation de droit il faut alors que le compte soit OBLIGATOIREMENT dans le groupe sudo. On ne parle pas de serveur ansible mais plutot de “pilote” ou “master” car n'importe quelle machine peut être pilote. Du coup si on travaille en équipe il est donc fortement conseillé d'utiliser le meme répertoire “projet” qui contiendra toutes les configurations, fichiers, répertoires, etc.. Le plus simple est alors soit un partage réseau soit un dépot Git (GitHub ou GitLab). On ne tratera ce point.
Par défaut, ansible exécutera les commandes sur les cibles avec le meme compte qui est utilisé sur la machine pilote. Si on travaille en équipe, chacun a son login. Ce n'est pas impossible mais cela va être fastidieux de gérer tous les comptes en sudo sur toutes les cibles. Donc il est préférable d'avoir un seul compte sur les cibles en sudo qui sera utilisé pour ansible. Dans ce cas il faudra le fixer dans la configuration de chaque playbook, la recette d'une automatisation.
Pour un usage plus détaillé: https://docs.ansible.com/projects/ansible/latest/inventory_guide/connection_details.html
Avec votre compte, pas du root et ni en SUDO, on installe ansible avec la méthode conseillé: PIPX. Le pakage de votre distribution risque de ne pas suivre les versions ou diverger sur des fonctionnalités. On installe d'abord les outils avant d'installer ansible . (en root ou sudo)
sudo apt install pipx yamllint tree jq git
Installation de pip avec son compte normal (pas en root ou sudo )
pipx install ansible --include-deps
Voilà, pour vérifier l'instllation:
ansible --version
retours attendu:
ansible [core 2.21.4] config file = /home/beemoon/ansible/ansible.cfg configured module search path = ['/home/beemoon/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/beemoon/.local/share/pipx/venvs/ansible/lib/python3.13/site-packages/ansible ansible collection location = /home/beemoon/.ansible/collections:/usr/share/ansible/collections executable location = /home/beemoon/.local/bin/ansible python version = 3.13.5 (main, Aug 10 2026, 12:06:59) [GCC 14.2.0] (/home/beemoon/.local/share/pipx/venvs/ansible/bin/python) jinja version = 3.1.6 pyyaml version = 6.0.3 (with libyaml v0.2.5)
On suppose que vous pouvez vous connecter sur les cibles en SSH depuis la machine pilote avec votre compte.