【发布时间】:2018-10-19 12:58:33
【问题描述】:
我有很多 Ansible 角色从一个项目复制到另一个项目,所以我决定将这些角色存储在一个单独的 Git 存储库中,并使用 Git 子模块组装剧本。
所需的剧本结构是:
- Playbook repo
- playbook.yml
- roles/role1 (submodule)
- roles/role2 (submodule)
- roles/role3 (playbook-specific role)
问题是有时将额外的功能提交到角色存储库中是不值得的(长时间的代码审查过程,功能过于具体等)所以我需要一种方法来扩展角色步骤而不修改角色本身喜欢:
---
- name: Deploy the product and the very-specific-configuration
roles:
- role1
- role2
tasks:
- name: extra_specific_task1
command: '<some_command>'
become: True
- name: extra_specific_task2
package:
name: '<pkgname>'
state: present
become: True
- role3
所以问题是:如何添加这样的功能?
【问题讨论】:
-
它是灵活的工具,恕我直言,没有您正在寻找的此类政策。 Module include_role and parameter tasks_from 允许您创建多种组合。我认为,从明确定义的角色开始并使用Including and Importing 来实现目标是个好主意。
-
@VladimirBotka ,您能否将您的评论改写为答案,以便我将其标记为解决方案?我使用了您提供的超链接,这帮助我解决了问题。
-
@NR:由于“搁置”,不允许更多答案。感谢您的评论。