Installer Ansible#
Objectif
Installation d’Ansible sur un poste de travail.
Prérequis#
Création du virtualenv#
Pour isoler l’installation de nos dépendances du reste du système, nous allons créer un virtualenv global à tous nos futurs projets. Chaque projet pourra ensuite venir surcharger ce virtualenv avec le sien propre pour isoler ses dépendances au fil des besoins.
Création de notre espace de travail Ansible
> mkdir ~/ansible-workspaces
.lineos mkdir: création du répertoire '/home/user/ansible-workspaces'
> cd ~/ansible-workspaces
/home/user/ansible-workspaces
Création d’un fichier
.envrc
pour indiquer à direnv de créer un virtualenv
1#
2# .envrc
3#
4layout python3
Référencement du
.envrc
auprès de direnv. Lancer la commande:
> direnv allow .
Activation automatique du virtualenv
Si vous lancez la commande which python3
depuis le répertoire ~/ansible-workspaces
ou en dehors,
vous n’obtenez pas le même chemin.
Direnv active automatiquement le virtualenv qu’il crée lorsque votre
shell se trouve dans un sous-répertoire comparé à l’emplacement du fichier .envrc
.
Installation d’Ansible#
Maintenant que notre virtualenv est prêt, une simple commande nous permet d’y installer Ansible :
> pip install ansible-core
Installation locale
Si vous lancez la commande which ansible
depuis le répertoire ~/ansible-workspaces
, vous pourrez observer que le binaire qui
répond est situé dans le virtualenv créé juste avant.
Ligne d’arrivée#
Félicitations, vous venez d’installer Ansible dans un virtualenv. Si vous lancez la commande which ansible
depuis le répertoire ~/ansible-workspaces
, vous pourrez observer que le binaire qui
répond est situé dans le virtualenv créé juste avant.
> which ansible
/home/user/ansible-workspaces/.direnv/python-3.9.2/bin/ansible
> ansible --version
ansible [core 2.14.2]
config file = None
configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/user/ansible-workspaces/.direnv/python-3.9.2/lib/python3.9/site-packages/ansible
ansible collection location = /home/user/.ansible/collections:/usr/share/ansible/collections
executable location = /home/user/ansible-workspaces/.direnv/python-3.9.2/bin/ansible
python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] (/home/user/ansible-workspaces/.direnv/python-3.9.2/bin/python3)
jinja version = 3.1.2
libyaml = True