CHEF における条件付き依存関係

CHEF における条件付き依存関係

複雑なソフトウェア スタックがあり、それを 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()実行リストを使用するか確認してください。

関連情報