Dependências condicionais em CHEF

Dependências condicionais em CHEF

Tenho uma pilha de software complicada que gerencio com 2 receitas.

recipe[stack::foo]
recipe[stack::bar]

fooé instalado em todos os servidores, enquanto baré instalado apenas em um subconjunto de servidores. bardepende do arquivo e do serviço foo.

receita[pilha::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

receita[pilha::bar]

  file 'barFile' do
    source 'somewhere'
  end

  service 'barService' do
    action :start
  end

É possível fazer uma dependência condicional, para que caso a barreceita esteja presente no nó, ele seja reiniciado. Se não for, ele irá ignorá-lo.

Estou tentando algo assim

  file 'fooFile' do
    source 'somewhere'
    notifies :restart, service[barService] if exists? "service[barService]" 
    notifies :restart, service[fooService]
  end

Responder1

Respondido no IRC, e o usuário spuder informou que perguntar duas vezes não é incentivado.

dr use resources()ou verifique a lista de execução.

informação relacionada