カスタム Python モジュールを別のモジュールにインポートしようとすると、Tower 3.5 で機能しなくなりました。この正確な設定は 2.7.1 で機能し、Ansible の現在のバージョンは 2.7.10 です。
Playbook で使用するカスタム モジュールはライブラリ ディレクトリにあり、インポートするモジュールはメイン ディレクトリにあります。たとえば、次のようになります。
| My Repo
|
| example.py
|
| library/
| main.py
ANSIBLE_LIBRARY 環境変数を設定すると、モジュールの場所が ansible に通知されることを読みました。この ANSIBLE_LIBRARY: "./", also "{{ playbook_dir }}" を設定しようとしましたが、役に立ちませんでした。このプロジェクトはレポから同期されています。カスタム モジュールへの一定のパスがありません...
main.py 内で例をインポートしようとすると、以前は次のようにできました。
#!/usr/bin/python
from ansible.module_utils.basic import *
import example
これはエラー メッセージです: ImportError: No module named example
追加情報、これが私が思いついた回避策です (MOD_PATH は '{{playbook_dir}}' です):
sys.path.insert(0, yaml_data['MOD_PATH'])
import example