web-dev-qa-db-ja.com

Ansibleプレイブックに公開鍵ペアの.pemファイルを使用するにはどうすればよいですか?

公開されたawsキーペアの.pemファイルを使用して、Ansibleプレイブックを実行したいと思います。 ~/.ssh/id_rsa.pubを変更せずにこれを実行したいのですが、現在の~/.ssh/id_rsa.pubから新しいキーペアを作成して、変更しようとしているec2インスタンスに適用できません。

$ ansible --version
ansible 1.9.6
  configured module search path = None

これが私のhostsファイルです(実際のIPは1.2.3.4に置き換えられていることに注意してください)。公開鍵変数を設定してそれを使用する方法が必要なので、これはおそらく問題です。

[all_servers:vars]
ansible_ssh_private_key_file = ./mykeypair.pem

[dashboard]
1.2.3.4 dashboard_domain=my.domain.info 

これが私のプレイブックです:

---
- hosts: dashboard
  gather_facts: False
  remote_user: ubuntu

  tasks:
    - name: ping
      ping:

これは私がそれを実行するために使用しているコマンドです:

ansible-playbook -i ./hosts test.yml

その結果、次のエラーが発生します。

fatal: [1.2.3.4] => SSH Error: Permission denied (publickey).
    while connecting to 1.2.3.4:22

私のキーペアに問題はありません:

$ ssh -i mykeypair.pem [email protected] 'whoami'
ubuntu

何が悪いのですか?

10
Alex Cohen

ホストファイル変数にスペースを含めることはできず、変数を適用するグループを定義する必要があると思います。このhostsファイルは、それですべて機能します。

[dashboard:vars]
ansible_ssh_private_key_file=./mykeypair.pem

[dashboard]
1.2.3.4 dashboard_domain=my.domain.info 
17
Alex Cohen

私はこれに遭遇しました、そして私がしなければならなかったすべては以下を実行することでした

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