从食谱创建厨师数据包

时间:2012-07-15 07:32:25

标签: chef chef-recipe

如何从配方创建数据包并避免在数据包已存在时出现异常?

文档显示创建数据包的方式如下:

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

当数据库尚不存在时,这是有效的,但是如果数据库已经存在,那么如何使它工作,这样就不会破坏厨师的运行?

1 个答案:

答案 0 :(得分:12)

尝试使用Chef :: DataBag的list方法,检查您的数据条的名称是否存在:

require 'chef/data_bag'

unless Chef::DataBag.list.key?('unique_name')
  new_databag = Chef::DataBag.new
  new_databag.name('unique_name')
  new_databag.save
end

我使用它来使我的食谱更加健壮,或者如果在Chef服务器上找不到预期的数据字节,则会抛出更友好的错误。