【问题标题】:CHEF - Best Practice to pass data from an Orchestrator to Chef?CHEF - 将数据从 Orchestrator 传递给 Chef 的最佳实践?
【发布时间】:2023-03-31 16:49:01
【问题描述】:

我大约一个月前才开始使用 Chef,所以还是很绿色。我正在创建一本食谱,它将以 RPM 的形式部署我们的应用程序。如果我在属性中硬编码我想要的 RPM 的版本,它就可以正常工作。但是,同一应用程序 RPM 会有多个版本,它们来自不同的团队和源代码控制中的不同分支。

我需要从构建协调器中动态输入我想要的特定版本的 RPM。我曾考虑让它使用每个版本的版本信息更新数据包,并使用它来获取我想要的版本,但好奇其他人在类似情况下做了什么?在我为 60 多个应用程序执行此操作之前,尽量避免从一开始就走错路。

谢谢,

乔恩

【问题讨论】:

    标签: chef-infra build-process versioning


    【解决方案1】:

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

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

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

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

    使用环境的第二个好处是,您还可以在加载新说明书时设置说明书版本限制。确保运行时行为不会改变。

    knife cookbook upload -E app-2_0 -o cookbooks --all --freeze --force
    

    【讨论】:

    • 谢谢!这听起来很简单。会试一试,看看效果如何。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多