Ste*_*Loo 11 chef-infra knife databags
我试图使用以下命令从chef-repo目录中创建一个Chef数据包:
knife data bag create users deployer
Run Code Online (Sandbox Code Playgroud)
我收到了回复:
Created data_bag[users]
Created data_bag_item[deployer]
Run Code Online (Sandbox Code Playgroud)
但我无法找到数据包用户及其数据包项目.它不在data_bags文件夹中或我可以看到的任何其他位置.如果我做了
knife data bag show users
Run Code Online (Sandbox Code Playgroud)
它会显示数据包项目名称.所以它必须保存在某个地方.文档告诉我数据包应该在chef-repo - > data_bags - > users文件夹中.但我的data_bags文件夹似乎是空的.那么我刚刚创建的数据包在哪里?
set*_*rgo 14
使用Chef,您的本地计算机(称为"工作站")与远程Chef服务器之间存在差异.在您的情况下,该knife
命令在远程Chef服务器上创建了数据包.
我理解这可能会产生误导.数据包只不过是包含一个或多个.json
文件的文件夹.通常,您可以在工作站上手动生成此结构(使用GUI或终端).
因此,在您的示例中,只需创建您描述的文件夹(chef-repo -> data_bags -> users
),然后chef-repo/data_bags/users/deployer.json
使用cookbook描述的模式创建文件.
小智 12
当你使用
刀数据包创建用户部署者
刀在chef-server上创建数据包.它不适用于您当地的厨师工作站.但您可以在本地工作站上下载此数据包.只需使用以下命令即可
刀下载data_bags
此命令将在chef-repo/data_bags/users/deployer.json中下载数据包. 您可以直接更新此JSON文件.完成后,请记住再次使用" 刀上传 " 上传此数据包.