使用 Ansible 2.10.7:
ansible 2.10.7
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/admin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/admin/.local/lib/python3.8/site-packages/ansible
executable location = /home/admin/.local/bin/ansible
python version = 3.8.7 (default, Jun 21 2021, 18:32:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
在 CentOS7 机器上,我正在尝试使用自定义集合,但出现以下错误:
Exception: CollectionModuleUtilLocator can only locate below ansible_collections.(ns).(coll).plugins.module_utils, got ('ansible_collections', 'sdp', 'firewall_automation', 'plugins', 'modules', 'globals')
fatal: [localhost]: FAILED! => {
"msg": "Unexpected failure during module execution.",
"stdout": ""
}
我的收藏位于:
/home/admin/.ansible/collections/ansible_collections/sdp/firewall_automation
我的 ansible.cfg 看起来像:
[defaults]
collections_paths = /home/admin/.ansible/collections/
inventory = /etc/ansible/hosts
host_key_checking = false
看起来我的收藏品放置不当,但我在其他机器上使用此收藏品时,使用相同的配置没有此错误。
完整的错误回溯是:
Traceback (most recent call last):
File "/home/admin/.local/lib/python3.8/site-packages/ansible/executor/task_executor.py", line 158, in run
res = self._execute()
File "/home/admin/.local/lib/python3.8/site-packages/ansible/executor/task_executor.py", line 663, in _execute
result = self._handler.run(task_vars=variables)
File "/home/admin/.local/lib/python3.8/site-packages/ansible/plugins/action/normal.py", line 47, in run
result = merge_hash(result, self._execute_module(task_vars=task_vars, wrap_async=wrap_async))
File "/home/admin/.local/lib/python3.8/site-packages/ansible/plugins/action/__init__.py", line 861, in _execute_module
(module_style, shebang, module_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)
File "/home/admin/.local/lib/python3.8/site-packages/ansible/plugins/action/__init__.py", line 231, in _configure_module
(module_data, module_style, module_shebang) = modify_module(module_name, module_path, module_args, self._templar,
File "/home/admin/.local/lib/python3.8/site-packages/ansible/executor/module_common.py", line 1299, in modify_module
(b_module_data, module_style, shebang) = _find_module_utils(module_name, b_module_data, module_path, module_args, task_vars, templar, module_compression,
File "/home/admin/.local/lib/python3.8/site-packages/ansible/executor/module_common.py", line 1139, in _find_module_utils
recursive_finder(module_name, remote_module_fqn, b_module_data, zf)
File "/home/admin/.local/lib/python3.8/site-packages/ansible/executor/module_common.py", line 917, in recursive_finder
module_info = CollectionModuleUtilLocator(py_module_name, is_ambiguous=is_ambiguous, child_is_redirected=child_is_redirected)
File "/home/admin/.local/lib/python3.8/site-packages/ansible/executor/module_common.py", line 807, in __init__
raise Exception('CollectionModuleUtilLocator can only locate below ansible_collections.(ns).(coll).plugins.module_utils, got {0}'
Exception: CollectionModuleUtilLocator can only locate below ansible_collections.(ns).(coll).plugins.module_utils, got ('ansible_collections', 'sdp', 'firewall_automation', 'plugins', 'modules', 'globals')
fatal: [localhost]: FAILED! => {
"msg": "Unexpected failure during module execution.",
"stdout": ""
}