[Respondendo a própria pergunta depois de dar uma cutucada na configuração por algum tempo]
Eu consegui rastrear isso em um dos módulos que escrevi (é claro), mas foi devido ao uso de uma variável que não funcionou como eu esperava.
O que aconteceu foi:
$variable_dir = "/etc/puppet/bar"
class foo {
file { $variable_dir:
ensure => directory
}
}
define some-define() {
# Trimmed for brevity
exec { "some-$name":
# command, creates, timeout etc here
require => File[$variable_dir],
}
}
.. que basicamente causou alguma confusão com o arquivo [] usando uma variável. Eu substitui estes com o valor explícito da variável por enquanto e tudo funciona bem, mas foi uma surpresa! Estou assumindo que o meu entendimento do escopo e quando as variáveis podem ser definidas / usadas está um pouco fora de sintonia com o Puppet, então eu vou aprender que um lote melhor ...
Parece ter causado o mesmo comportamento que o uso de caminhos não totalmente qualificados em cadeias de arquivos, ao não encontrar a variável ou não obter o valor? Muito estranho, de qualquer maneira.
Edit: É bem possível que a variável não tenha sido encontrada no escopo, e por isso estava vazia e definitivamente não é um caminho totalmente qualificado. Não explica por que isso não foi consistente, no entanto ...