web-dev-qa-db-fra.com

Comment utiliser un fichier .pem de paire de clés publique pour les playbooks ansible?

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?

6
Alex Cohen

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 
10
Alex Cohen

J'ai rencontré cela et tout ce que je devais faire était de courir en dessous

#ssh-agent bash
#ssh-add ~/.ssh/keypair.pem
0
Victor Biga