Ansible: utilisation avec une clé ssh

Pour éviter, à chaque fois, de saisir le mot de passe (option -k) permettant de se connecter aux serveurs distants, il est possible d'utiliser une connexion par clé ssh.

La documentation Ansible en ligne

Tout est indiqué ici pour générer une clé ssh.

Une fois la clé ssh générée, il faut la copier sur tous les serveurs distants.
Pour cela, nous allons utiliser Ansible pour le faire à grande échelle.

Nous allons donc utiliser la commande authorized_key pour le faire.

$ ansible -m authorized_key -u mon_user -a "user=mon_user exclusive=true state=present key=""{{ lookup('file', '~/.ssh/id_rsa.pub') }}""" all -k

- L'option -m authorized_keys permet d'indiquer que nous souhaitons utiliser la commande authorized_keys
- L'option -u mon_user permet d'indiquer avec quel utilisateur se connecter aux serveurs distants.
- L'option -a "..." permet de renseigner les arguments nécessaires pour la commande authorized_keys. On y indique le user concerné, le terme exclusive permet d'indiquer qu'il doit y avoir une seule clé ssh d'autorisée, le terme state permet d'indiquer que la clé publique doit être présente (absent si l'on souhaite la supprimer) et enfin, le terme key permet, grâce à la fonction lookup, de copier le contenu du fichier ~/.ssh/id_rsa.pub du serveur local dans le fichier authorized_keys du ou des serveurs distants.
- Le mot clé all permet d'indiquer que l'opération doit être effectuée sur tous les hosts présents dans l'inventaire.
- L'option -k permet de saisir le mot de passe pour se connecter aux serveurs distants.