1

有没有什么好方法可以使用 Ansible Galaxy 命令来安装和启用 Ansible (2.7.9) 自定义模块?

我的要求允许 Ansible Galaxy 下载嵌入我的自定义模块的正确 Ansible 角色。一次ansible-galaxy install --roles-path ansible/roles/ -r roles/requirements.yml,我得到以下结构(非详尽):

├── ansible
│   ├── roles
│   │   ├── mymodule (being imported by Galaxy)
│   │   │   ├── library
│   │   │   │   └── mymodule.py

通过查看文档的这一部分,我的模块似乎在正确的位置,不需要任何进一步的配置:https ://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html?highlight=library#目录布局

但是当我找到这部分文档时,我感到很困惑。是否ANSIBLE_LIBRARY与自定义模块有关?

DEFAULT_MODULE_PATH

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

类型:路径规范

默认值:~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules

Ini 部分:默认值

Ini 键:库

环境:ANSIBLE_LIBRARY

https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-module-path

调用我的模块时,

  - name: Test of my Module
    mymodule:

我收到以下错误:

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

我希望不必配置ANSIBLE_LIBRARY自动可调用的模块。我理解正确还是应该欺骗这个变量?

4

1 回答 1

1

如果您的自定义模块在角色中,则需要在剧本中包含该角色,因此至少:

---
- hosts: myhosts

  roles:
    - role: mymodule

  tasks:
    - name: Test of my Module
      mymodule:
于 2019-10-24T15:26:22.527 回答