在 2.2.1.0 中导入 ansible.module_utils 作为库存模块的一部分

import ansible.module_utils in 2.2.1.0 as part of inventory module

将 UTILS classes 导入 Inventory - 可以做到吗?

我创建了一个自定义 LDAP 数据导入器,作为创建清单的一部分 class。我们拥有的 LDAP 架构与示例中提供的 LDAP 插件不够相似。

我的class叫做ldapDataModule; class 在:

/home/agt/ansible/agt_module_utils/ldapDataModule.py

我的“$HOME/.ansible.cfg”文件包含以下内容:

module_utils = /home/agt/ansible/agt_module_utils

当 运行 我的 Ansible 清单模块时,我得到以下输出:

ansible ecomtest37 -m ping ERROR! Attempted to execute "/sites/utils/local/ansible/hosts" as inventory script: Inventory script (/sites/utils/local/ansible/hosts) had an execution error: Traceback (most recent call last): File "/sites/utils/local/ansible/hosts", line 22, in from ansible.module_utils import ldapDataModule ImportError: No module named module.utils

hosts 中的 include 语句如下所示:

import copy
import ldap
import re
import sys
import operator
import os
import argparse
import datetime
import os.path
try:
    import json
except:
    import simplejson as json
from ansible.module_utils import ldapDataModule

class agtInventory(object):

建议?

作为 "work around",我能够执行以下操作。我仍然想听听 Ansible 大师关于正确使用 ansible.cfg

中的 "module_utils" 变量的意见
sys.path.insert(0, '/home/agt/ansible/agt_module_utils')

from ldapDataModule import ldapDataModule