{{indexmenu_n>10}}
# Se préparer à utiliser Ansible
[Le dépôt](https://gitlab.utc.fr/picasoft/projets/ansible) a été conçu de sorte que n'importe quel·le administrateur·ice puisse l'utiliser (vous, moi...) 😊.
Pour cette raison, il y quelques prérequis pour faire fonctionner Ansible. Ces opérations ne sont à faire qu'une seule fois.
## Sur les hôtes distants
Il faut disposer d'un accès SSH sur l'ensemble des hôtes déclarés dans l'inventaire utilisés dans les playbooks :
* Le login et le mot de passe doit être le même sur toutes les machines ;
* Les utilisateurs sont dans le groupe `sudo` ;
* `requiretty` n'est pas activé dans `/etc/sudoers` (voir la [documentation Ansible](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#ansible-pipelining)) ;
* L'accès SSH se fait par la même clé et pas par mot de passe.
L'inventaire des hôtes peut être retrouvé dans le fichier [inv.yml](https://gitlab.utc.fr/picasoft/projets/ansible/-/blob/main/inventory/inv.yml).
Picasoft utilise [[technique:adminsys:ldap:start|un serveur LDAP centralisé]] pour la gestion des utilisateurs, mots de passe et clés, ces prérequis sont d'avance respectés.
Les hôtes doivent avoir Python 3 d'installé.
En d'autres termes, Ansible aura les mêmes autorisations que ton utilisateur ainsi que la capacité d'élever ses privilèges, lui donnant les droits `root`. Il faut donc redoubler de prudence.
## Sur la machine locale
### Ansible
Vérifier que la machine est équipée du paquet `openssh` et du programme `ssh-askpass`.
Installer Ansible en suivant la [documentation](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
Installer les modules supplémentaires :
```bash
ansible-galaxy collection install -r req/requirements.yml
pip install -r req/requirements.txt
```
Définir les variables d'environnement suivantes (`export`, `.bashrc`...) :
```bash
PICASOFT_SSH_USER=
PICASOFT_SSH_KEY_PATH=
```
Vérifier que tout fonctionne avec la commande :
```bash
ansible-playbook -K playbooks/ssh.yml
```
Cette commande teste les accès SSH pour tous les hôtes de l'inventaire et termine si l'accès est autorisé.
Le mot de passe demandé est celui de l'utilisateur sur les machines.