Como Dominic mencionou em seu comentário, a função loadyaml
é executada em tempo de compilação.
Se você estiver executando o Puppet por meio de um Puppet Master / Server e puppet agent
, isso acontece no servidor, antes que o manifesto seja enviado ao cliente, não no próprio cliente.
Além disso, a função loadyaml
é executada em compilação , não em execução - então o arquivo precisa existir antes da execução do Puppet acontece.
Eu pergunto por que você está adotando essa abordagem com o seu código Puppet - você não explica realmente para que serve o código ou qual é o estado final pretendido.
Você pode obter os mesmos resultados usando o Hiera.
hieradata / common.yaml
---
mod::princ::data:
entry:
foo: bar
yrtne:
oof: rab
modules / mod / manifestos / princ.pp
class mod::princ (
Hash $data
) {
$data.each |Integer $i, Hash $elem, $var | {
$mark=$var['Mark']
}
}