
複雑なソフトウェア スタックがあり、それを 2 つのレシピで管理しています。
recipe[stack::foo]
recipe[stack::bar]
foo
はすべてのサーバーにインストールされますが、bar
はサーバーのサブセットにのみインストールされます。bar
ファイルとサービスによって異なりますfoo
。
レシピ[スタック::foo]
file 'fooFile' do
source 'somewhere'
notifies :restart, service[barService] #bar needs to be restart first, if it is present
notifies :restart, service[fooService]
end
service 'fooService' do
action :start
end
レシピ[スタック::バー]
file 'barFile' do
source 'somewhere'
end
service 'barService' do
action :start
end
条件付き依存関係を作成して、レシピがノード上に存在する場合にそれを再起動することは可能ですかbar
。存在しない場合はスキップします。
私はこんなことを試しています
file 'fooFile' do
source 'somewhere'
notifies :restart, service[barService] if exists? "service[barService]"
notifies :restart, service[fooService]
end
答え1
IRC で回答し、ユーザー spuder は二重の質問は推奨されないことを通知しました。
tl;drresources()
実行リストを使用するか確認してください。