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.
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
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.
Tags chef conditional