Chr*_*ian 11 ansible ansible-role
最好用一个例子来描述这个问题:
有两个角色:
mailserver:基本邮件服务器配置mailinglist:邮件列表应用程序邮件列表软件需要邮件服务器将传入的邮件传输到邮件列表软件的"虚拟收件箱".这需要一些邮件服务器的配置.但邮件服务器不知道邮件列表角色,也不了解具有类似配置要求的其他角色.
我想做的是:
mailinglist(和其他类似的角色)将传输配置存储在变量中transport_config.这可能是一个"运输地图",如$ email => $ spool.mailinglist取决于mailserver角色.mailserver使用变量配置它的"传输" transport_config.有没有办法在Ansible中做这样的事情?或者这个问题的另一个解决方案 这是不是可以使用类似角色的变量{role: mailserver, transport_config: ...},因为依赖于邮件服务器可能有不止一个角色.
我能想到的是一种解决方法:mailserver读取/解析定义传输映射的配置目录.mailinglist和其他角色将文件添加到此目录.这里的问题是,这通常需要"配置构建器"来读取这样的配置目录并生成主配置文件.
Ben*_*ley 20
在mailinglist角色下roles/mailinglist/meta/main.yml,添加如下内容:
---
dependencies:
- { role: mailserver, transport_config: ... }
Run Code Online (Sandbox Code Playgroud)
对任何其他类似角色也这样做.
为了回应您关于“配置生成器”的评论,请参阅assemble ansible 模块。棘手的部分可能是在运行汇编模块之前将所有文件放入一处。
否则,tima 对 host_ 和 group_vars 的建议是有意义的。
| 归档时间: |
|
| 查看次数: |
16610 次 |
| 最近记录: |