我们正在创建一个整体的Ansible代码库,各个部门都会使用它来启动自己的环境。
拥有通用代码库然后允许每个部门配置自己的服务器的最佳方法是什么?
这是一个具体的例子。假设我们有这个角色:
角色/阿帕奇
包含defaults/
,tasks/
,vars/
目录。
但是,A部门可能希望确保有/var/www/html
目录,而B部门可能需要/opt/www
目录。
如何创建允许A和B创建自己的目录的基本模板角色?
答案 0 :(得分:1)
例如:
在defaults/main.yml
中定义默认变量:
dirs_list: ['/var/www/html']
创建任务以在tasks/main.yml
中创建所需目录:
- file:
path: '{{ item }}'
state: directory
with_items: '{{ dirs_list }}'
这样Dept A可以使用默认值调用角色:
roles:
- apache
和部门B可以覆盖默认值:
roles:
- role: apache
dirs_list:
- /opt/www
- /var/somepath