我的 ansible playbook 文件夹中有本地集合文件夹。我还在 ansible.cfg 中配置了路径。
cat ansible.cfg
[defaults]
collections_paths = ./ansible_collections
但是当我运行剧本时,它使用来自 python 站点包的路径
/Users/user1/opt/miniconda3/lib/python3.9/site-packages/ansible_collections
我在跑步
ansible 2.10.11
config file = /Users/user1/Documents/work/scripts/ansible-repo/ansible.cfg
configured module search path = ['/Users/user1/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /Users/user1/opt/miniconda3/lib/python3.9/site-packages/ansible
executable location = /Users/user1/opt/miniconda3/bin/ansible
python version = 3.9.1
作为调试剧本运行的一部分,我删除了站点包下的集合,我的剧本开始失败。
ansible-playbook 运行带有详细的调试显示
Using module file /Users/user1/opt/miniconda3/lib/python3.9/site-packages/ansible_collections/arista/eos/plugins/modules/eos_command
ansible-galaxy 集合列表显示本地集合和站点包下的集合。
在剧本中,我的任务使用 FQCN。例如 arista.eos.eos_facts:
我还手动设置了 ANSIBLE_COLLECTIONS_PATH 变量。
env | grep ANSIBLE_COLLECTIONS_PATH
ANSIBLE_COLLECTIONS_PATHS=/Users/user1/Documents/work/scripts/ansible-repo/ansible_collections