Ansible
AnsibleDay 19

AnsibleとFreeBSDの詰まりポイント

More than 3 years have passed since last update.

Ansible使い始めて詰まったポイントを色々書こうと思っていたんですが、詰まったのがFreeBSDのパッケージ管理がいまいちなことが原因の再現性のないものばかりでいざ記事を書こうと思ってもう一度やってみると、全部何も問題なくうまくいってしまいました。

とは言ってもアドベントカレンダー登録してしまったので、一言だけ書きます。

Ansibleはホスト側でPythonを/usr/bin/にしかチェックしにいかないので、FreeBSDではシンボリックリンクを貼ろう!


2015/09/29 追記

インベントリファイルに以下のように書くそうです。コメントで教えていただきました。

参考:How do I handle python pathing not having a Python 2.X in /usr/bin/python on a remote machine?

freebsd_host      ansible_python_interpreter=/usr/local/bin/python


以上です。以下に少しだけ詳しく状況を書きました。


環境

Vagrant上で

CentOS 6.5から

FreeBSD 9.2を操作

(MacでAnsibleが動かなくなった時のファーストアクションと同じくMacで動かせなかったため、仕方なく2つVMをたてています、、、なんとかしたい、、、)


あるはずのpythonがない

CentOSでAnsibleのインストールなどもろもろして、pingを確認してみると、

FreeBSD側で/usr/bin/pythonが見つからないと怒られます。

$ ansible -i hosts 192.168.33.10 -m ping

192.168.33.10 | FAILED >> {
"failed": true,
"msg": "/usr/bin/python: not found\n",
"parsed": false
}

確認してみるとFreeBSDでデフォルトでインストールされているPythonは、/usr/local/bin/下にあり、/usr/bin/下にはたしかにありません。

仕方ないので、シンボリックリンクをば。あまり良い解決策ではないのかも。

$ sudo ln -s /usr/local/bin/python2.7 /usr/bin/python

無事pingが通りました。

$ ansible -i hosts 192.168.33.10 -m ping

192.168.33.10 | success >> {
"changed": false,
"ping": "pong"
}