CHEF - 将数据从Orchestrator传递给Chef的最佳实践?

时间:2015-05-13 18:06:09

标签: chef build-process versioning

我刚开始使用Chef大约一个月后仍然很绿。我正在创建一个将以RPM形式部署我们的应用程序的食谱。如果我在属性中硬编码我想要的RPM版本,我就可以正常工作了。但是,同一应用程序RPM的多个版本将来自不同的团队和源代码管理中的不同分支。

我需要从构建协调器动态提供我想要的RPM的特定版本。我想过让它用每个版本的版本信息更新一个数据包并使用它来获得我想要的版本,但对其他人在类似情况下所做的事情感到好奇吗?在我为60个应用程序执行此操作之前,尝试避免从一开始就走错路。

谢谢,

乔恩

1 个答案:

答案 0 :(得分:0)

我使用环境属性覆盖来管理部署时间设置:

git clone https://github.com/aporter/coursera-android-labs/tree/master/TheActivityClass/Lab2_ActivityLab

与我的应用程序实例关联的所有服务器都使用此环境进行引导。

echo '{"name":"app-2_0","override_attributes":{"app":{"version":"2.0"}}}' > demo.json
knife environment from file demo.json

使用环境的第二个好处是您还可以在加载新菜谱时设置cookbook版本约束。确保运行时行为不会发生变化。

knife bootstrap server1 --environment app-2_0 ...