Dependências condicionais no CHEF

1

Eu tenho uma pilha de software complicada que eu gerencio com 2 receitas.

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

foo está instalado em todos os servidores, enquanto bar está instalado em apenas um subconjunto de servidores. bar depende 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, de modo que, se a receita bar estiver presente no nó, ela será reiniciada. Se não for, 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
    
por spuder 13.06.2015 / 05:46

1 resposta

2

Respondido no IRC, e o usuário Spuder informou que o pedido duplo não é incentivado.

tl; dr usa resources() ou verifica a lista de execução.

    
por 13.06.2015 / 05:52