0

我是否认为可能没有选项可以从命令行更改值?

例如这样的:

knife data bag edit my_data_bag host1 ...action "upgrade"

那么第二行将从“删除”更改为“升级”:

{
    "id": "host1",
    "action": "remove"
}

我知道我可以从文件中做到这一点,但我想为不同的团队提供更简单的流程。提供命令而不是文件来编辑会更容易。编辑 json 文件并传递给刀需要一些了解。为数百个盒子编辑 json 也可能很困难。

也许您看到了简化它的好方法?目标是提供简单的过程,例如很少的命令,而不是编辑文件。

4

1 回答 1

1

由于没有直接的方法来修改它knife,我建议使用该jq实用程序以编程方式更改文件。

基于一个简单的脚本,您可以读取用户的输入,相应地更改 JSON 文件,然后调用knife data bag from file,而无需用户直接调用knife.

另一种选择——我个人更喜欢这个——是通过 Git 推送修改后的 JSON 文件,然后触发 CI 服务器(例如 Jenkins),然后更新数据包。如果不是每个人都需要访问 Chef 服务器,这将使您的设置更容易。

于 2016-02-22T16:32:04.340 回答