レシピからデータ バッグを作成し、そのデータ バッグが既に存在する場合に例外を回避する方法は?
ドキュメントには、データ バッグの作成が次のように行われることが示されています。
new_databag = Chef::DataBag.new
new_databag.name('unique_name')
new_databag.save
これは、データバッグがまだ存在しない場合に機能しますが、データバッグが既に存在する場合に機能させて、シェフの実行を中断しないようにする方法は?
レシピからデータ バッグを作成し、そのデータ バッグが既に存在する場合に例外を回避する方法は?
ドキュメントには、データ バッグの作成が次のように行われることが示されています。
new_databag = Chef::DataBag.new
new_databag.name('unique_name')
new_databag.save
これは、データバッグがまだ存在しない場合に機能しますが、データバッグが既に存在する場合に機能させて、シェフの実行を中断しないようにする方法は?
list
Chef::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 サーバーで見つからない場合によりわかりやすいエラーをスローしたりします。