Soru Bir kukla manifestinde bir ortam değişkenine nasıl erişebilirim?


Bir kukla tezahüründe bir ortam değişkenine (kukla daemon ortamından) nasıl erişebilirim?


14
2018-03-29 21:09


Menşei


Facter tarafından oluşturulan bir değişken mi demek istiyorsun? - Scott Pack
$ PATH ve $ USER gibi bash ortam değişkenlerini kastediyorum. - joeforker


Cevaplar:


Neye ulaşmaya çalıştığınıza dair daha fazla bilgiye ihtiyacımız var. Faction, varsayılan olarak FACTER_ ortam değişkenlerini gösterir:

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

Fakat $ PATH veya $ USER için ... Neden kuklaya belli bir yolu veya kullanıcıyı (exec için) açık bir şekilde kullanmasını söylemiyor?


7
2018-03-31 06:58



Çevresel değişkenlerle bir tercümanı çeşitli nedenlerden dolayı kontrol etmek çok sıradan bir şeydir ... özellikle kukla kılıcını bir yorumcu olarak (#! Satırında?) Kandırarak düşünürseniz ... - joeforker
Mükemmel cevap. Ortam değişkeninin büyük harfli bir ismi olsa bile, tüm Facter değişkenlerinin küçük isimleri olduğunu fark etmeden çok zaman harcadım. Herkes jnrg'nin verdiği örneklere çok dikkat ediyor. - Russell Silva
kırık link var - kenorb


Kukla'nın Bash çevre değişkenleri olmadan çalıştığını söyleyebilirim. Tüm ortamını Facter'den alıyor gibi görünüyor. Bir senaryo var İşte düzenli envvarlarınızı Facter envvars olarak içe aktarmak için.


6
2018-04-20 17:43





Puppetmaster'ın ortamını istiyorsanız, bunun için bir sunucu tarafı işlevini kullanmanız gerekir. Facter size müşteri gerçeklerini getirdiği için.

$ RUBYLIB / kukla / çözümleyici / işlevleri / env.rb:

module Puppet::Parser::Functions
  newfunction(:env) do |args|
    variable = args[0]
    ENV[variable]
  end
end

Şunun gibi manifestlerinde kullan:

$blah = env("PATH")

6
2017-09-09 02:37





Kukla işletmesi 2.5.1'de, / etc / env yoluyla erişebilirsiniz.

Ayrıca, ortamınızda doğru bir ortam bulunup bulunmadığını kontrol edin. /etc/puppetlabs/puppet/puppet.conf -- Bunun gibi bir şeye benzemeli:

[production]
  modulepath = /etc/puppetlabs/puppet/environments/production/modules:/opt/puppet/share/puppet/modules
  manifest   = /etc/puppetlabs/puppet/environments/production/manifests/site.pp

1
2018-06-08 04:14





Cevap biraz hayal kırıklığı yaratıyor: (Kukla veya Facter'i geliştirmedikçe) yapamazsınız. Kısa bir süre önce bu konu hakkında kısa bir blog yazısı yazdım: Kukla içindeki ortam değişkenlerine erişim

Kısa bir özet: Her bir Puppet ajan sisteminde Facter çalışıyor. Tüm ortam değişkenlerini toplamak için Facter'i basitçe geliştirin ve ardından Puppet manifestlerinde onlara erişebilirsiniz.

Umarım yardımcı olur!


-1
2018-06-02 18:48