使用knife命令更轻松,更快地管理厨师数据包

时间:2016-02-22 15:15:59

标签: chef databags

我是否正确地认为可能没有从命令行更改值的选项?

例如:

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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