代码之家  ›  专栏  ›  技术社区  ›  P....

保存Ansible自定义模块的位置

  •  1
  • P....  · 技术社区  · 7 年前

    在下面的目录结构中,我必须创建一个“anistable”目录的zip。其想法是将ansible目录中的所有内容(如playbook、roles、inventory details和自定义模块)放入一个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目录之外,需要特权(用户没有)

    问题:

    1. 是否有可能放置my_custom_module.py以便ansible在运行时自动拾取它?这必须在“ansible”目录中的某个地方。

    2. 如果我在运行ansible playbook之前执行此操作,它会工作,但是在使用自定义模块之前,是否仍然可以从ansible playbook以编程方式执行此操作?

    3. 我是否可以提供自定义模块相对于“ansible”目录的路径?在任何conf文件或env变量中?注意,我不能使用 /etc ,/usr/ etc

    4. 有可能吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Community Mohan Dere    6 年前

    您可以创建一个文件 ansible.cfg 在你的内心 ansible DEFAULT_MODULE_PATH 变数( library

    [defaults]
    library = ./library
    

    更多信息可在 Ansible documentation

    以下是文档中关于此设置的说明:

    描述:Ansible将在其中搜索模块的冒号分隔路径。

    类型:pathspec

    Ini部分:默认值

    Ini键:库

    环境:ANSIBLE_图书馆