Je souhaite utiliser un fichier .pem public aws keypair pour exécuter des playbooks. Je souhaite le faire sans changer mon ~/.ssh/id_rsa.pub
et je ne peux pas créer de nouvelle paire de clés à partir de mon ~/.ssh/id_rsa.pub
actuel et l'appliquer aux instances ec2 que je tente de modifier.
$ ansible --version
ansible 1.9.6
configured module search path = None
Voici mon fichier hosts (notez que mon adresse IP actuelle est remplacée par 1.2.3.4
). C'est probablement le problème car j'ai besoin d'un moyen de définir une variable de clé publique et de l'utiliser:
[all_servers:vars]
ansible_ssh_private_key_file = ./mykeypair.pem
[dashboard]
1.2.3.4 dashboard_domain=my.domain.info
Voici mon playbook:
---
- hosts: dashboard
gather_facts: False
remote_user: ubuntu
tasks:
- name: ping
ping:
C'est la commande que j'utilise pour l'exécuter:
ansible-playbook -i ./hosts test.yml
Il en résulte l'erreur suivante:
fatal: [1.2.3.4] => SSH Error: Permission denied (publickey).
while connecting to 1.2.3.4:22
Il n'y a pas de problème avec ma paire de clés:
$ ssh -i mykeypair.pem [email protected] 'whoami'
ubuntu
Qu'est-ce que je fais mal?
Ok petites erreurs Je suppose que vous ne pouvez pas avoir d'espaces dans les variables du fichier Host et devez définir le groupe auquel vous appliquez les vars. Ce fichier hôtes fonctionne avec tout ça:
[dashboard:vars]
ansible_ssh_private_key_file=./mykeypair.pem
[dashboard]
1.2.3.4 dashboard_domain=my.domain.info
J'ai rencontré cela et tout ce que je devais faire était de courir en dessous
#ssh-agent bash
#ssh-add ~/.ssh/keypair.pem