=====注意=====
この記事は、私がやってて詰まった内容をただ淡々と書いてるだけです。
同じような原因の人もいるかもしれないと思って記載しましたが、
「え、それやってて当然やん(笑)」
という意見が圧倒的に多いかもしれませんので、優しく見守ってやってください(?)
============
こんなことしようとした。
1)上司から「ちょっと今のplaybook汚いから今度整理しよう。よろしゅう。」
2)what?!
3)playbook書いたことないし、そもそもansible自体触ったことない
4)んじゃ、Vagrantでhostとtarget作って、hostからtargetに対していろいろやろう
ということで、
5)コマンドプロンプトopen
6)vagrant init centos/7
7)適当にVagrantfile書いて・・・
8)vagrant up host
9)vagrant up target
で準備して、poderosaでhost側に接続。
んでいろいろ調べつつ、yum install epel-release, yum install ansibleでansibleを入れる。
ansible --version でバージョン出た。インストールおk!
で、早速pingを送ってみた
10)ansible [targetのIP] -m ping
出てきたのが
[targetのIP] | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh.",
"unreachable": true
}
なんじゃこれ!?
よくよく調べると、~/.ssh/config がないから、接続に使うsshキーがうまく設定できてないらしい。
んじゃ設定しよう。
11)vi ~/.ssh/config
Host [targetのIP]
User vagrant
IdentityFile ~/.ssh/ansible-target-key
IdentitiesOnly yes
※ansible-target-keyの中身は、vagrant up targetしたときに生成されたprivate_key
これ使って再び ansible [targetのIP] -m ping を実行
・・・結果同じやん!
え、鍵間違ってる?そもそも普通に接続できる?てことで
12)ssh [targetのIP]
・・・・あーあーあー・・・権限が644になってたからね・・・。
13)chmod 600 ~/.ssh/ansible-target-key
これで再び
14)ansible [targetのIP] -m ping
[targetのIP] | SUCCESS => {
"changed": false,
"ping": "pong"
}
キマシタワー。
結果として、普段やってるはずの鍵の権限をそのままにしてたせいでした。
が、普通にansibleだと権限のことはエラーに出てこないので、別サーバに接続するときはまずsshコマンドで普通につなげるかどうかの確認が必須ですね。