Opsworks 和 Chef - 使用相同的配方定制部署的每个应用程序

Opsworks 和 Chef - 使用相同的配方定制部署的每个应用程序

我有一组将 Python 应用程序部署到 AWS 实例的方案,它们运行良好。我想部署两个略有不同的应用程序,例如一个需要安装异步工作代码,另一个则不需要。我该怎么做?

我认为我的选择是:

  1. 在 OpsWorks 中创建两个应用程序,并为每个应用程序设置环境变量,以便配方可以使用这些环境变量来决定是否/如何运行某些任务环境变量
  2. 在 repo 中创建详细说明应用程序特定要求的文件
  3. 在每个部署中添加自定义 JSON。自定义JSON

在我看来,这些选择都不理想,我是不是忽略了什么?

答案1

选项 1 和 3 “实际上”(我这么说是比较宽泛的)是相同的。您基本上是通过 JSON 传递差异。我个人曾经使用并成功在 OpsWorks 中创建了两个不同的应用程序,但我也非常希望初级资源能够修改某些元素,但无权访问密码或其他敏感属性。直接回答,选项 2 让我最不安。选项 1/3 更好,但取决于您的需求。

相关内容