6

レシピからデータ バッグを作成し、そのデータ バッグが既に存在する場合に例外を回避する方法は?

ドキュメントには、データ バッグの作成が次のように行われることが示されています。

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

これは、データバッグがまだ存在しない場合に機能しますが、データバッグが既に存在する場合に機能させて、シェフの実行を中断しないようにする方法は?

4

1 に答える 1

12

listChef::DataBagのメソッドを使用してみて、データバッグの名前が存在するかどうかを確認してください。

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 サーバーで見つからない場合によりわかりやすいエラーをスローしたりします。

于 2012-07-15T09:15:01.410 に答える