Dependencias condicionales en CHEF

Dependencias condicionales en CHEF

Tengo una pila de software complicada que administro con 2 recetas.

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

foose instala en cada servidor, mientras que barse instala solo en un subconjunto de servidores. barDepende del archivo y del servicio foo.

receta[pila::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

receta[pila::barra]

  file 'barFile' do
    source 'somewhere'
  end

  service 'barService' do
    action :start
  end

¿Es posible crear una dependencia condicional de modo que, si la barreceta está presente en el nodo, lo reinicie? Si no es así, lo omitirá.

Estoy intentando algo como esto

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

Respuesta1

Respondió en IRC y el usuario spuder informó que no se recomienda hacer doble pregunta.

tl;dr use resources()o verifique la lista de ejecución.

información relacionada