Bagaimana cara mengakses variabel lingkungan dalam manifes boneka?


15

Bagaimana cara mengakses variabel lingkungan (dari lingkungan daemon boneka) di manifes wayang?


Apakah maksud Anda variabel yang dihasilkan oleh facter?
Scott Pack

Maksud saya variabel lingkungan bash seperti $ PATH dan $ USER.
joeforker

Jawaban:


8

Saya pikir kami memerlukan lebih banyak informasi tentang apa yang ingin Anda capai ... Facter mengekspos secara default FACTER_ variabel lingkungan:

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

Tetapi untuk $ PATH atau $ USER ... Mengapa tidak memberitahu boneka untuk menggunakan jalur yang diberikan atau pengguna (untuk eksekutif?) Secara eksplisit?


Sangat biasa untuk mengontrol penerjemah dengan variabel lingkungan, karena berbagai alasan ... terutama jika Anda berpikir tentang kadang-kadang menggunakan boneka sebagai penerjemah (di baris #!)? Bukan daemon ...
joeforker

Jawaban yang sangat bagus. Saya membuang banyak waktu tidak menyadari bahwa semua variabel Facter memiliki nama huruf kecil bahkan jika variabel lingkungan memiliki nama huruf besar. Semua orang memperhatikan contoh yang diberikan jnrg.
Russell Silva

1
ada tautan rusak
kenorb

7

Anda harus menggunakan fungsi sisi server untuk ini jika Anda menginginkan lingkungan puppetmaster. Karena facter memberi Anda fakta klien.

$ RUBYLIB / boneka / parser / fungsi / env.rb:

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

Gunakan dalam manifes Anda seperti:

$blah = env("PATH")

6

Dari apa yang saya tahu Puppet berjalan tanpa variabel lingkungan Bash. Tampaknya mendapatkan semua lingkungannya dari Facter. Ada skrip di sini untuk mengimpor utusan reguler Anda sebagai utusan Facter.


Tautan tidak berfungsi lagi. Bisakah Anda memperbarui jawabannya?
NA

1

Di Puppet enterprise 2.5.1 Anda dapat mengaksesnya melalui / etc / env.

Periksa juga apakah Anda memiliki lingkungan yang benar di lingkungan Anda /etc/puppetlabs/puppet/puppet.conf- seharusnya terlihat seperti ini:

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

-1

Jawabannya agak mengecewakan: Anda tidak bisa (kecuali jika Anda meningkatkan Wayang atau Pelukis). Baru-baru ini saya menulis posting blog pendek tentang topik ini: Mengakses variabel lingkungan dalam Wayang

Ringkasan singkat: Facter berjalan di setiap sistem agen Wayang. Cukup tingkatkan Facter untuk mengumpulkan semua variabel lingkungan dan kemudian Anda dapat mengaksesnya dalam manifestasi Wayang.

Semoga itu bisa membantu!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.