Article original Publié le : 11 aout 2021 Mise a jour le : |
Sur XUbuntu 20.04 la version du dépôt est la 2.9.6, ce qui pose un problème avec les services init et systemd sur un docker, j’ai systématiquement l’erreur
1 |
fatal: [test-docker]: FAILED! => {"changed": false, "msg": "Service is in unknown state", "status": {}} |
Sur Reddit ça parle d’un bug et qu’il fallait au minimum la version 2.9.12/17
Du coup il faut utiliser pip3
Désinstaller la version actuelle d’ansible
1 |
$ sudo apt remove --purge ansible |
Disposer ou procéder a l’installation de Python-pip3
1 |
$ sudo apt install python3-pip |
Avec pip3 on peut spécifier une version, mais autant installer la dernière (4.0 = 2.1x)
1 |
$ pip3 install ansible |
Vérifier la version
1 |
$ /home/bef/.local/bin/ansible --version |
1 2 3 4 5 6 7 8 9 |
ansible [core 2.11.3] config file = None configured module search path = ['/home/bef/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/bef/.local/lib/python3.8/site-packages/ansible ansible collection location = /home/bef/.ansible/collections:/usr/share/ansible/collections executable location = /home/bef/.local/bin/ansible python version = 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0] jinja version = 2.10.1 libyaml = True |
Ansible a été installé avec pip pour l’utilisateur courant du coup il n’est pas dans le path
Pour corriger cela
- Faire un export, mais ne sera valide que pour la durée de la session
1 |
$ export PATH=$PATH:/home/bef/.local/bin/ |
- Ajouter l’export de façon pérenne dans le .bashrc ou .zshrc
1 |
$ vim ~/.zshrc |
1 |
export PATH=$PATH:/home/bef/.local/bin/ |
- Puis recharger le fichier d’env
1 |
$ source ~/.zshrc |
Re-tester la commande
1 |
$ ansible --version |
1 2 3 4 5 6 7 8 9 |
ansible [core 2.11.3] config file = None configured module search path = ['/home/bef/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/bef/.local/lib/python3.8/site-packages/ansible ansible collection location = /home/bef/.ansible/collections:/usr/share/ansible/collections executable location = /home/bef/.local/bin/ansible python version = 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0] jinja version = 2.10.1 libyaml = True |