{{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.