はじめに
久しぶりに Anshible を触った時にハマってしまったので、またハマってしまわないように、備忘録として記録しておきます。
ハマったこと
前に使っていた Anshible を 久しぶりに EC2 の UbuntuOS 16.04 に流そうとした時の出来事なのですが、前まで正常に通っていたはずの Anshible が下記エラーで動かずにハマってしまいました。
/usr/bin/python: No such file or directory
原因
Ansible はデフォルトで /usr/bin/python
を見にいくのですが、UbuntuOS 16.04 では python3 がデフォルトになっており、エラーの通り/usr/bin/python
が存在していなかったのです。
$ which python
# 存在しない
$ which python3
/usr/bin/python3
前回は UbuntuOS 14.04 を使用していたため、問題がおきなかったようです。
解決法
Ansible の ansible_python_interpreter
変数に python3 の path を指定して解決しました。
ansible_python_interpreter
は Ansible version 2.2 からサポートされた機能で、今回のように python3 を指定する場合や、/usr/bin/python
以外を使いたい場合に使用できます。
この ansible_python_interpreter
を下記のように インベントリファイルに記述することで、python3 を参照するようにします。
[all:vars]
ansible_python_interpreter=/usr/bin/python3
[web]
ec2-host
これで無事解決できました。