かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleでboto3 and botocore required for this moduleというエラーがでたときの対処法

事象

AnsibleでS3を操作しようとしていたところ、以下のようなエラーが出てしまいました。

PLAY [s3_get] *****************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************
ok: [172.140.1.1]

TASK [aws_s3] *****************************************************************************************************
fatal: [172.140.1.1]: FAILED! => {"changed": false, "failed": true, "msg": "boto3 and botocore required for this module"}
        to retry, use: --limit @/home/ec2-user/ansible/s3_get.retry

PLAY RECAP ********************************************************************************************************
172.140.1.1               : ok=1    changed=0    unreachable=0    failed=1   

boto3とbotocoreが必要だよ!と言われているのだが、以下のように両方ちゃんとはいっているはず…

$ pip freeze | grep boto
boto==2.48.0
boto3==1.5.18
botocore==1.8.32
$ python --version
Python 2.7.12

解決策

ansible_hostsにansible_python_interpreterの定義を追加してあげたところうまくいきました!

172.140.1.1 ansible_python_interpreter=/usr/bin/python

PythonのPATHを明示して記載してあげています。
どうやらAnsibleがPythonを探せていなかったようです。

初めてのAnsible

初めてのAnsible