0

我正在为我们的基础设施编写一个可靠的剧本。我有以下反复出现的需求,但我还没有找到推荐的模式:

我有一台需要运行多个虚拟主机(/databases/rbenv environment/etc)的服务器。我可以安装 nginx (postgres/rbenv/etc) 依赖于银河系的角色,即

dependencies:
- role: "geerlingguy.nginx"
  nginx_ppa_use: true
  nginx_ppa_version: development
  ..

现在我可以向这个依赖项添加一组虚拟主机配置。但是,我不想按技术(nginx/rbenv ...)而是按项目来捆绑这些定义。

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

4

1 回答 1

2

这对我来说似乎很好。

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

它不应该,因为 Ansible 被构建为仅在系统状态未处于所需状态时执行操作(即仅在未安装 nginx 时安装 nginx)。

但是,如果重复检查花费的时间比您希望的要长,您可以将角色分成两个:一个执行基本的通用设置,另一个为每个虚拟主机重复。

于 2016-04-18T18:31:55.530 回答