如何创建数据包作为厨师脚本的一部分

时间:2015-02-24 13:44:20

标签: ruby chef knife

我需要创建一个数据包,然后创建一个数据包项目使用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

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

1 个答案:

答案 0 :(得分:2)

Chef客户没有创建/更新数据包的权限(对于角色等其他容器也适用)。

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

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