Acessando variáveis de configuração de fantoches de manifestos?

4

É possível acessar variáveis de configuração do mestre Puppet (como confdir, masterport, etc) dentro de um manifesto Puppet?

    
por sh-beta 27.01.2010 / 17:22

2 respostas

6

Existem três maneiras.

  1. Jeff McCune tem uma ótima função em seu github que faz exatamente isso:
    module Puppet::Parser::Functions
      newfunction(:getconf, :type => :rvalue, :doc => 
    2010-09-29

    The getconf function takes a single argument, the name of a
    configuration setting and returns the value of that setting.

    It is similar to the --configprint command line argument to
    return configuration settings except it exposes this information
    to the language.
    END_HEREDOC
      do |args|
        if args.length != 1 then
          raise Puppet::ParseError, ("ERROR: getconf() takes only one argument")
        end
        Puppet[args[0]]
      end # do |args|
    end # module
    # EOF

Coloque isso em um arquivo chamado 'getconf.rb' na libdir do seu servidor de marionetes ( /var/puppet/lib/puppet/parser/functions/getconf.rb ) e acesse-o a partir de um manifesto como

# somemanifest.pp
$myvar = getconf("ssldir")
notify {"set ssldir to ${myvar}":}

2. No Puppet 2.6, é ainda mais fácil, pois a configuração das configurações é acessível como ${settings::somevar} , portanto, o manifesto é simplesmente:

# 26manifest.pp
$myvar = $settings::ssldir
notify {"set ssldir to $myvar":}

3. No boneco 0.25 você pode usar um modelo in-line:

# 25manifest.pp 
$myvar = inline_template("<%= Puppet.settings[:ssldir] %>")
notify {"set ssldir to ${myvar}":}

Métodos 2 e 3 graças a este tópico sobre usuários de marionetes

    
por 25.01.2011 / 01:38
-1

não tanto quanto eu sei. o que você está tentando fazer?

    
por 27.01.2010 / 18:15

Tags