Problemas ao obter fatos personalizados do Puppet

2

Eu criei um fato personalizado simples:

Facter.add(:hello) do
  setcode do
    "Hello, world"
  end
end

e coloque aqui (no mestre de fantoches):

/etc/puppet/modules/custom/lib/facter

Estou testando no cliente de marionetes:

facter hello

e não vejo nada.

Considerando que este comando funciona (no cliente de marionetes):

facter --puppet hello
Hello, world

Verificando se o fato está sincronizado (no cliente de marionetes):

puppetd --test --pluginsync
info: Retrieving plugin
info: Loading facts in /var/lib/puppet/lib/facter/hello.rb
info: Caching catalog for host.example.com

Parece que o fato personalizado está bem sincronizado. Não consigo entender por que não está disponível via facter .

Além disso, como posso usar esse novo fato do mestre de marionetes? Eu preciso construir uma condicional simples com base no fato personalizado.

Por exemplo, adicionei site.pp (no puppetmaster):

$string = "$hello"
notice("Testing custom fact: $string")

Novamente, no syslog não há linha da função notice .

Estudei muita documentação e ainda não consegui fazer funcionar. Eu apreciarei se alguém pudesse ver este assunto.

Obrigado.

Configuração: Ubuntu Server 12.04, Puppet 2.7.11, facter 1.6.5

    
por Andrew 05.03.2013 / 17:33

1 resposta

1

Os fatos personalizados do fantoche são usados apenas em execuções de bonecos ou quando você usa o sinal --puppet em facter . Se você não concordar com isso, coloque os fatos personalizados em algum lugar que o facter sempre usará - consulte aqui para detalhes.

O fato deve estar presente para a compilação do catálogo; você provavelmente não está registrando mensagens de aviso. Para usá-lo como condição:

if $hello == "Hello, world" {
  notify { "found": }
}
    
por 06.03.2013 / 03:24

Tags