[小ネタ] Pythonのバージョンを指定してAnsible実行時に表示される警告を消す
こんにちは。サービスグループの武田です。
最近Macのキーボードの調子が悪く、修理に出してもらいました。その間は代替機が支給されるのですが、設定がデフォルトです。手でぽちぽちと設定変更してもよかったのですが、せっかくなのでAnsibleを使ってセットアップしよう!ということでプレイブックを書くことにしました。
書いたプレイブックを実行すると次のような警告が出ました。無視してもすぐに問題にはなりませんが、気持ち悪いので解決しようというのがこの記事の主旨です。
[WARNING]: Platform darwin on host 127.0.0.1 is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
先に結論
Ansibleの設定ファイル(ansible.cfg)に次の設定を追加すれば解決できます。
[defaults] interpreter_python=/usr/bin/python3
ちなみにAnsibleのバージョンは2.9.3でした。
$ ansible --version ansible 2.9.3
少し詳しく
上記の設定で解決しますが、詳しい説明について警告にも表示されていたページで確認できます。
Interpreter Discovery — Ansible Documentation
そもそも警告を出していたInterpreter Discoveryとは、ターゲットホスト上で利用するPythonインタプリタを探すためのしくみです。
このページによると、件の警告を解決する方法は大きく2種類用意されています。
ansible_python_interpreter
変数を指定するansible.cfg
の[defaults]
セクションにinterpreter_python
を指定する
2の方法は冒頭で紹介したものです。1の方法はかなり柔軟で、全体で指定したり各タスクで指定したりできます。たとえば1の方法で全体に設定するには次のような設定をインベントリファイルに追加します。
[all:vars] ansible_python_interpreter=/usr/bin/python3
まとめ
Mac用のプレイブックを作ることはそこまで難しくはないのですが、本当にたいへんなのはきちんとメンテナンスすることだよなぁと思ってます。