1

カスタム 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
4

0 に答える 0