ありがたいAnsibleの日本語チュートリアル( http://yteraoka.github.io/ansible-tutorial/ )をやっていてpingでいきなり躓いた。
$ ansible -i hosts 192.168.33.12 -m ping
192.168.33.12 | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue
-vvvvオプションをつけるとどうやらssh configが意図した場所ではなく、~/.ssh/configを読みに行っているようでした。
vagrantで作ったvmのssh設定ファイルは、Vagrantfileと同じ場所に置きたかったので調べてみました。
ansible.cfgで設定するようです:
http://docs.ansible.com/intro_configuration.html#ssh-args
以下、設定した結果です。
##各ファイルの中身
※Vagrantfileはチュートリアルのままなので省略
[ssh_connection]
ssh_args = -F ssh.config
Host node1
HostName 127.0.0.1
User vagrant
Port 2001
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/yoccola/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
Host node2
HostName 127.0.0.1
User vagrant
Port 2002
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/yoccola/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
[vagrant]
node1
node2
##確認
Host設定の名前でpingを叩いてみます。
$ ansible -i hosts node1 -m ping
node1 | success >> {
"changed": false,
"ping": "pong"
}
allもいけました。
$ ansible -i hosts all -m ping
node1 | success >> {
"changed": false,
"ping": "pong"
}
node2 | success >> {
"changed": false,
"ping": "pong"
}
##参考
Ansible チュートリアル | Ansible Tutorial in Japanese
http://yteraoka.github.io/ansible-tutorial/
The Ansible Configuration File
http://docs.ansible.com/intro_configuration.html