É muito comum controlar um intérprete com variáveis de ambiente, por várias razões ... especialmente se você pensar em executar fantoches às vezes como intérprete (na linha #!?) Em vez de um daemon ...
joeforker
Excelente resposta. Eu perdi muito tempo sem perceber que todas as variáveis do Facter têm nomes em minúsculas, mesmo que a variável de ambiente tenha um nome em maiúsculas. Todos prestem muita atenção ao exemplo que o jnrg fornece.
Russell Silva
1
existe link quebrado
kenorb
7
Você precisaria usar uma função do lado do servidor para isso, se quiser o ambiente do puppetmaster. Desde facter você recebe fatos do cliente.
Pelo que posso dizer, o Puppet é executado sem nenhuma variável de ambiente Bash. Parece obter todo o seu ambiente do Facter. Há um script aqui para importar seus envios regulares como envios do Facter.
A resposta é um pouco decepcionante: você não pode (a menos que aprimore o Puppet ou o Facter). Recentemente, escrevi um pequeno post sobre este tópico:
Acessando variáveis de ambiente no Puppet
Um breve resumo: o Facter está sendo executado em todos os sistemas de agentes Puppet. Simplesmente aprimore o Facter para coletar todas as variáveis de ambiente e, em seguida, você pode acessá-las nos manifestos do Puppet.
Respostas:
Acho que precisamos de mais informações sobre o que você está tentando alcançar ... O Facter expõe por padrão as variáveis de ambiente FACTER_:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
Mas para $ PATH ou $ USER ... Por que não diz ao puppet para usar um determinado caminho ou usuário (para um executivo?) Explicitamente?
fonte
Você precisaria usar uma função do lado do servidor para isso, se quiser o ambiente do puppetmaster. Desde facter você recebe fatos do cliente.
$ RUBYLIB / fantoche / analisador / funções / env.rb:
Use-o em seus manifestos, como:
fonte
Pelo que posso dizer, o Puppet é executado sem nenhuma variável de ambiente Bash. Parece obter todo o seu ambiente do Facter. Há um script aqui para importar seus envios regulares como envios do Facter.
fonte
No Puppet enterprise 2.5.1, você pode acessá-lo via / etc / env.
Verifique também se você tem o ambiente correto definido no seu
/etc/puppetlabs/puppet/puppet.conf
- ele deve ser algo como isto:fonte
A resposta é um pouco decepcionante: você não pode (a menos que aprimore o Puppet ou o Facter). Recentemente, escrevi um pequeno post sobre este tópico: Acessando variáveis de ambiente no Puppet
Um breve resumo: o Facter está sendo executado em todos os sistemas de agentes Puppet. Simplesmente aprimore o Facter para coletar todas as variáveis de ambiente e, em seguida, você pode acessá-las nos manifestos do Puppet.
Espero que ajude!
fonte