公開された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
何が悪いのですか?
ホストファイル変数にスペースを含めることはできず、変数を適用するグループを定義する必要があると思います。このhostsファイルは、それですべて機能します。
[dashboard:vars]
ansible_ssh_private_key_file=./mykeypair.pem
[dashboard]
1.2.3.4 dashboard_domain=my.domain.info
私はこれに遭遇しました、そして私がしなければならなかったすべては以下を実行することでした
#ssh-agent bash
#ssh-add ~/.ssh/keypair.pem