Yanıtlar:
Sanırım elde etmeye çalıştığınız şeyler hakkında daha fazla bilgiye ihtiyacımız var ... Facter varsayılan olarak FACTER_ ortam değişkenlerine maruz kalıyor:
https://docs.puppetlabs.com/guides/faq.html#can-i-access-environment-variables-with-facter
$ FACTER_FOO="bar"
$ export FACTER_FOO
$ facter | grep 'foo'
foo => bar
Ancak $ PATH veya $ USER için ... Neden kuklaya belirli bir yolu veya bir kullanıcıyı (exec için?) Açıkça kullanmasını söylemiyorsunuz?
Kuklacının ortamını istiyorsanız, bunun için bir sunucu tarafı işlevi kullanmanız gerekir. Facter size müşteri gerçekleri alır beri.
$ RUBYLIB / kukla / çözümleyici / işlevleri / env.rb:
module Puppet::Parser::Functions
newfunction(:env) do |args|
variable = args[0]
ENV[variable]
end
end
Manifestlerinizde şu şekilde kullanın:
$blah = env("PATH")
Kukla kurumsal 2.5.1'de / etc / env.
Ayrıca, sizin tanımladığınız doğru ortama sahip olup olmadığınızı da kontrol edin /etc/puppetlabs/puppet/puppet.conf
- şöyle görünmelidir:
[production]
modulepath = /etc/puppetlabs/puppet/environments/production/modules:/opt/puppet/share/puppet/modules
manifest = /etc/puppetlabs/puppet/environments/production/manifests/site.pp
Cevap biraz hayal kırıklığı yaratıyor: Yapamazsınız (Kukla ya da Facter'ı geliştirmedikçe). Kısa bir süre önce bu konuyla ilgili kısa bir blog yazısı yazdım: Kukla içindeki ortam değişkenlerine erişim
Kısa bir özet: Facter her Kukla aracı sisteminde çalışıyor. Tüm ortam değişkenlerini toplamak için Facter'ı basitçe geliştirin ve sonra Kukla manifestleri içinde bunlara erişebilirsiniz.
Umarım yardımcı olur!