当我尝试将自定义python模块导入另一个模块时,它在Tower 3.5中不再起作用。此精确设置适用于2.7.1,当前Ansible版本为2.7.10。
我在剧本中使用的自定义模块在库目录中,而导入的模块在主目录中。例如:
| My Repo
|
| example.py
|
| library/
| main.py
我已经读到设置ANSIBLE_LIBRARY env变量将告诉ansible在哪里可以找到该模块。我尝试设置此ANSIBLE_LIBRARY:“ ./”,也设置“ {{playbook_dir}}”,但这无济于事。这个项目是从一个仓库同步的,我没有到定制模块的恒定路径...
在main.py中,如果我尝试导入示例,我曾经能够做到这一点:
#!/usr/bin/python
from ansible.module_utils.basic import *
import example
这是错误消息:ImportError:没有名为example的模块
其他信息,这是我想出的解决方法(MOD_PATH为'{{playbook_dir}}'):
sys.path.insert(0, yaml_data['MOD_PATH'])
import example