我正在为我们的基础设施制作一份安全的剧本。我有以下重复需要,我还没有找到推荐的模式:
我有一台需要运行多个虚拟机的服务器(/ databases / rbenv environment / etc)。我可以安装nginx(postgres / rbenv / etc),依赖于来自galaxy的角色,i。即
dependencies:
- role: "geerlingguy.nginx"
nginx_ppa_use: true
nginx_ppa_version: development
..
现在我可以为这个依赖项添加一个vhost配置数组。但是,我想不是通过技术(nginx / rbenv ...)而是通过项目捆绑这些定义。
到目前为止,我发现的最佳路径是在每个项目角色中重复nginx依赖。但这会导致所有全局nginx选项重复,并在配置新服务器时重复执行nginx安装。
答案 0 :(得分:2)
这对我来说似乎很好。
到目前为止,我发现的最佳路径是在每个项目角色中重复nginx依赖。但这会导致所有全局nginx选项重复,并在配置新服务器时重复执行nginx安装。
它不应该,因为如果系统状态不是所需的状态,Ansible只能用来做事情(即只有在nginx已经安装的情况下才安装nginx)。
但是,如果重复检查花费的时间超过您的预期,您可以将角色分成两部分:一部分执行基本的常用设置,另一部分针对每个虚拟主机重复执行。