あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Python2環境下のAnsibleからPython3しかないPython環境にPlaybookを実行する

Mac(少なくとも10.14)では何も考えてないとPython2.7系が主のままですが、こないだCentOS 8を用意してPython3だけいれた環境にPlaybookを実行しようとしたらなんかコケたのでメモ。メモしなくても都度ググれば似たような記事は出るだろそれはそう。

TASK [Gathering Facts] *********************************************************
fatal: [172.16.x.x]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 172.16.x.x closed.\r\n", "module_stdout": "/bin/sh: /usr/bin/python: そのようなファイルやディレクトリはありません\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 127}

Python3を入れると/usr/bin/python3になるのが原因っぽいです。2系と区別したいとか動かなくなるトラブル防止とかで/usr/bin/pythonを使わないんでしょうけどpythonでええやん……。

ググったら、varsでansible_python_interpreterを使ってpython3のパスを書けば良いとのこと。

docs.ansible.com

[all]
172.16.x.x

[all:vars]
ansible_user=centos
ansible_python_interpreter=/usr/bin/python3