【问题标题】:How to set chef data bag values via Jenkins?如何通过 Jenkins 设置厨师数据包值?
【发布时间】:2016-02-23 06:09:43
【问题描述】:

我发布了正确回答的“How to set chef attributes via Jenkins?”,即使用“-j”选项。但是,如果我想在 Jenkins 的数据包中设置加载版本,以便所有食谱都可以使用它,该怎么办?那就是我不想使用“-j”选项而是搜索数据包中的值?如何通过 Jenkins 设置厨师数据包值

【问题讨论】:

    标签: jenkins chef-infra


    【解决方案1】:

    最佳方式:使用knife命令上传预定义或生成的数据包。

    knife data bag from file BAG json_file_for_item

    文件必须有定义的格式,扩展文档是HERE

    对文件系统层次结构有要求对文件格式有要求,在此处复制文档听起来是个坏主意。

    【讨论】:

    • 谢谢。假设我已经有一个带有加载版本定义的数据包。通过您的流程,我将不得不不断更改数据包以反映我想要的加载版本是否正确?我不想这样做。我只想让数据包反映我通过 Jenkins 传递的内容
    • Jenkins 可能会为您生成 json 数据包,我们通过简单的字段替换来做到这一点,databag.json 首先有 %%VERSION%% 之类的占位符,它被构建任务和更新的数据包已上传。您可以通过knife data bag show BAG ITEM -f json 获取实际的数据包并设置占位符
    • 有道理!谢谢你。
    【解决方案2】:

    除了刀之外,您还可以使用 Chef REST API 编写自己的脚本。有 Ruby (Chef-API)、Python (PyChef)、JavaScript (chef-js) 等许多客户端。

    【讨论】:

      猜你喜欢
      • 2014-11-03
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 2019-08-12
      • 2013-02-22
      • 2019-03-06
      • 1970-01-01
      • 2014-03-09
      相关资源
      最近更新 更多