在以下目录结构中,我必须创建一个“ anisble”目录的zip文件。想法是将所有内容(例如剧本,角色,清单详细信息和自定义模块)放入zip包中, 它的内容不应该依赖“ ansible”目录以外的任何内容。
<home>
|<user>
|__ansible
|_____playbook.yml
|_____inventory/
| |____myHosts
|
|_____library/
| |___my_Custom_module.py
|_roles
| |____role1
|____role2
我不能使用:“ /home/$USER/.ansible/plugins/modules/
”,因为这将使解决方案特定于用户,并且“ /usr/share/ansible/plugins/modules/
”位于ansible目录之外,并且需要特权(用户没有权限)
问题:
是否可以放置my_custom_module.py,以便在运行时ansible自动将其拾取?该目录必须位于“ ansible”目录中。
如果我在运行ansible剧本之前进行了此操作,它可以工作,但是在使用自定义模块之前,是否可以从ansible剧本中以编程方式进行此操作?
export ANSIBLE_LIBRARY = library / my_custom_module.py
无论如何,我是否可以提供自定义模块相对于“ ansible”目录的路径?在任何配置文件或环境变量?请注意,我不能使用/etc ,/usr/ etc
。一切都必须在ansible目录中,
有可能吗?
答案 0 :(得分:1)
您可以在ansible.cfg
目录内创建文件ansible
,然后在该文件中设置DEFAULT_MODULE_PATH
变量(library
):
[defaults]
library = ./library
可以在Ansible documentation中找到有关Ansible配置的更多信息。
这是文档中有关此设置的内容:
说明:用冒号分隔的路径,Ansible将在其中搜索模块。
类型:pathspec
默认值:〜/ .ansible / plugins / modules:/ usr / share / ansible / plugins / modules
ini节:默认
ini键:库
环境:ANSIBLE_LIBRARY