Ordem de execução da receita do Chef

3

Estou escrevendo uma receita que compila e instala um aplicativo a partir do código-fonte, mas também altera arquivos de configuração em diretórios que são criados quando o aplicativo termina a instalação. A receita parece algo assim:

bash "install inspircd from source" do
  ...
  code <<-EOH
    ....
    make && \
    make install
  EOH
end

...

# Copy over the configuration template
template "<config dir>/inspircd.conf" do
  source "inspircd.conf.erb"
  ....
end

Com base nos documentos , "Os recursos são executados na ordem em que aparecem". Mas não parece que Chef está executando isso na ordem em que aparecem, porque tenta colocar o arquivo de modelo em um diretório que só é criado após a conclusão da instalação.

O Chef está executando a receita em paralelo? Existe uma maneira de bloquear a execução até que o comando bash termine? Qualquer ajuda seria apreciada. Obrigado.

    
por Arthur Maltson 17.01.2012 / 16:13

1 resposta

2

Deve estar funcionando em sequência. Se você está recebendo esse erro, eu acho que você pode estar tendo um problema no bloco bash.

Em qualquer caso, você pode fazer um "only_if" no modelo. Algo como:

template "<config dir>/inspircd.conf" do
  source "inspircd.conf.erb"
  ....
  only_if "test -d <config dir>" 
end

link

    
por 17.01.2012 / 16:50

Tags