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

managing chef data bag easier and faster using knife command

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

例如这样的事情:

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

所以第二行将从 "remove" 更改为 "upgrade":

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

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

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

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

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

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