使用 Ansible Galaxy 自动安装 Ansible 自定义模块
Automatic Ansible custom modules installation with Ansible Galaxy
有什么好的方法可以使用 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#directory-layout
但是当我找到文档的这一部分时,我感到很困惑。 ANSIBLE_LIBRARY
与自定义模块相关吗?
DEFAULT_MODULE_PATH
Description: Colon separated paths in which Ansible will search for Modules.
Type: pathspec
Default: ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules
Ini Section: defaults
Ini Key: library
Environment: 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
和自动调用的模块。我理解正确还是我也应该欺骗这个变种?
如果您的自定义模块有一个角色,您需要将该角色包含在您的剧本中,所以至少:
---
- hosts: myhosts
roles:
- role: mymodule
tasks:
- name: Test of my Module
mymodule:
有什么好的方法可以使用 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#directory-layout
但是当我找到文档的这一部分时,我感到很困惑。 ANSIBLE_LIBRARY
与自定义模块相关吗?
DEFAULT_MODULE_PATH
Description: Colon separated paths in which Ansible will search for Modules.
Type: pathspec
Default: ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules
Ini Section: defaults
Ini Key: library
Environment: 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
和自动调用的模块。我理解正确还是我也应该欺骗这个变种?
如果您的自定义模块有一个角色,您需要将该角色包含在您的剧本中,所以至少:
---
- hosts: myhosts
roles:
- role: mymodule
tasks:
- name: Test of my Module
mymodule: