Veja esta seção sobre a documentação do Puppet sobre customizando atributos do coletor. Exemplo:
File <| |> {
owner => 'foo',
}
Suponha que eu queira que hostB
tenha um arquivo distinto para cada nó do fantoche, mas com o proprietário que é conhecido apenas pelo hostB
.
Teoricamente, isso pode ser feito, se permitirmos que hostB
escreva um fato personalizado ( my_special_owner
) e leia esse fato por meio da função query_facts
na definição my_resource
por hostA
. Mas isso parece muito sujo: polui o espaço de nomes de fatos com coisas sem sentido, possivelmente causando conflitos de nomes. Também é um monte de codificação para uma coisa tão simples.
Aqui está uma demonstração do que tenho em mente:
define my_resource() {
$owner=${my_collector::owner} #This attempt fails
file{$name: ensure=>exists, owner=>$owner}
}
node hostA {
@@my_resource{"/tmp/file1.tmp"}
}
class my_collector($owner) {
# How to pass $owner to the collector below?
My_resource <<| |>>
}
node hostB {
class {'my_collector': owner=>bob}
}
Veja esta seção sobre a documentação do Puppet sobre customizando atributos do coletor. Exemplo:
File <| |> {
owner => 'foo',
}