2015-02-24 50 views
1

我需要创建一个数据包,然后使用CHEF RECIPE创建一个数据包项目。我无法这样做。 我有内容还准备是如下如何创建一个数据包作为厨师脚本的一部分

require 'rubygems' 
require 'chef/encrypted_data_bag_item' 

secret = Chef::EncryptedDataBagItem.load_secret('/root/data_bag') 
data = {"id" => "TEST", "root" => "root", "passwd" => "passwd"} 
encrypted_data = Chef::EncryptedDataBagItem.encrypt_data_bag_item(data, secret) 

现在我有内容,我需要创建一个数据包和项目,然后追加内容到该项目。这是我尝试创建数据包的方法。但它失败了。

new_databag = Chef::DataBag.new 
new_databag.name('list') 
new_databag.save 

当我使用new_databag.save其言论被禁止。

下面是创建数据包项目的代码片段,我通过互联网获取它。但我们如何指定我们想要给的项目名称。

item = Chef::DataBagItem.new 
item.data_bag('list') 
item.raw_data = data 
item.save 

任何帮助将不胜感激.. !!

+0

厨师服务器和厨师客户端使用哪些版本? – 2015-02-24 17:35:42

+0

@JavierCortejoso我试过11.x和12.x版本 – 2015-02-25 04:26:02

+0

任何线索@JavierCortejoso .. ?? – 2015-03-02 06:37:27

回答

1

厨师客户端不必权限创建/更新数据包(成立于其他容器,如角色)。

如果您在厨师服务器的“管理>全局权限> data_bags”下看到客户端的“403 Forbidden”更改权限。 要使用小刀,您必须安装“knife-acl”插件。

此操作不会更改现有数据包的权限!

+0

有没有关于此的任何文档,或者如何让厨师 - 客户能够做到这一点的例子? – Pred 2017-04-18 19:03:44

相关问题