como eu uso variável fantoche em fatos personalizados facter

2

como eu posso herdar a variável do manifesto de marionetes no fato personalizado do fac-símile? neste caso $ job_name varible. Eu quero usar o mesmo fato personalizado com diferentes envs.

if $facts['hostname'] =~ /.*name.*/ {

$job_name = 'test'

        file {  "/opt/$job_name":
                ensure => directory,
                owner  => 'root',
                group  => 'root',
                mode   => '0775',
             }


        file { "/opt/$job_name/version.$job_name":
                ensure => present,
                owner  => 'root',
                group  => 'root',
                mode   => '0644',
                #notify => Exec["update_test"],
                source => "puppet:///modules/test/version.$job_name",
             }


     if $facts['check_version'] == "aasdadsadasd" {

        file {  "/opt/$job_name/bla2":
                ensure => directory,
                owner  => 'root',
                group  => 'root',
                mode   => '0775',
             }


     }

meu código rb personalizado é

require 'facter'
Facter.add(:check_version) do
  setcode do
    Facter::Core::Execution.exec("/bin/cat /opt/$job_name/version.$job_name")
  end
end

obrigado antecipadamente

    
por antimion 08.10.2018 / 12:58

1 resposta

3

Se você quiser usar uma variável de manifesto em um fato personalizado, não será possível. Isso ocorre porque os fatos são avaliados no cliente antes que o catálogo (coleção de manifestos) seja compilado. Então, no ponto em que seu fato personalizado é executado, a variável $job_name ainda não existe.

    
por 08.10.2018 / 13:14

Tags