在多个角色中使用galaxy的ansible角色的最佳实践?

时间:2016-04-18 17:54:31

标签: ansible devops ansible-galaxy

我正在为我们的基础设施制作一份安全的剧本。我有以下重复需要,我还没有找到推荐的模式:

我有一台需要运行多个虚拟机的服务器(/ 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安装。

1 个答案:

答案 0 :(得分:2)

这对我来说似乎很好。

  

到目前为止,我发现的最佳路径是在每个项目角色中重复nginx依赖。但这会导致所有全局nginx选项重复,并在配置新服务器时重复执行nginx安装。

它不应该,因为如果系统状态不是所需的状态,Ansible只能用来做事情(即只有在nginx已经安装的情况下才安装nginx)。

但是,如果重复检查花费的时间超过您的预期,您可以将角色分成两部分:一部分执行基本的常用设置,另一部分针对每个虚拟主机重复执行。

相关问题