CHEF 中的条件依赖关系

CHEF 中的条件依赖关系

我有一个复杂的软件堆栈,我用两个配方来管理它。

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;dr 使用resources()或检查运行列表。

相关内容