![Opsworks 和 Chef - 使用相同的配方定制部署的每个应用程序](https://linux22.com/image/660224/Opsworks%20%E5%92%8C%20Chef%20-%20%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%90%8C%E7%9A%84%E9%85%8D%E6%96%B9%E5%AE%9A%E5%88%B6%E9%83%A8%E7%BD%B2%E7%9A%84%E6%AF%8F%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我有一组将 Python 应用程序部署到 AWS 实例的方案,它们运行良好。我想部署两个略有不同的应用程序,例如一个需要安装异步工作代码,另一个则不需要。我该怎么做?
我认为我的选择是:
- 在 OpsWorks 中创建两个应用程序,并为每个应用程序设置环境变量,以便配方可以使用这些环境变量来决定是否/如何运行某些任务
- 在 repo 中创建详细说明应用程序特定要求的文件
- 在每个部署中添加自定义 JSON。
在我看来,这些选择都不理想,我是不是忽略了什么?
答案1
选项 1 和 3 “实际上”(我这么说是比较宽泛的)是相同的。您基本上是通过 JSON 传递差异。我个人曾经使用并成功在 OpsWorks 中创建了两个不同的应用程序,但我也非常希望初级资源能够修改某些元素,但无权访问密码或其他敏感属性。直接回答,选项 2 让我最不安。选项 1/3 更好,但取决于您的需求。