在以下目录结构中,我必须创建一个 zip 的“anisble”目录。这个想法是将 ansible 目录中的所有内容(如剧本、角色、库存详细信息和自定义模块)放入 zip 包中,并且其内容不应该对“ansible”目录之外的任何内容有任何依赖。
<home>
|<user>
|__ansible
|_____playbook.yml
|_____inventory/
| |____myHosts
|
|_____library/
| |___my_Custom_module.py
|_roles
| |____role1
|____role2
Run Code Online (Sandbox Code Playgroud)
我不能使用:“ /home/$USER/.ansible/plugins/modules/”,因为这将使解决方案特定于用户,并且“ /usr/share/ansible/plugins/modules/”位于ansible目录之外并且确实需要特权(该用户没有)
问题:
是否有任何可能的位置可以放置 my_custom_module.py 以便在运行时它会自动被 ansible 选择?这必须位于“ansible”目录内的某个位置。
如果我在运行 ansible playbook 之前执行此操作,它可以工作,但是在使用自定义模块之前是否可以通过 ansible playbook 以编程方式执行此操作?
导出 ANSIBLE_LIBRARY=library/my_custom_module.py
无论如何,我可以提供自定义模块相对于“ansible”目录的路径吗?在任何conf文件或环境变量中?请注意,我无法使用/etc ,/usr/ etc. 所有内容都必须位于 ansible 目录内,
有可能吗?
ansible.cfg您可以在目录中创建一个文件ansible,然后在该文件中设置DEFAULT_MODULE_PATH变量 ( library):
[defaults]
library = ./library
Run Code Online (Sandbox Code Playgroud)
更多信息可以在Ansible 配置的Ansible 文档中找到。
以下是文档中关于此设置的说明:
描述:Ansible 将在其中搜索模块的冒号分隔路径。
类型:路径规范
默认值:~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules
Ini 部分:默认值
Ini 键: 库
环境:ANSIBLE_LIBRARY
| 归档时间: |
|
| 查看次数: |
11073 次 |
| 最近记录: |