Làm cách nào để truy cập vào một biến môi trường trong bảng kê khai con rối?


15

Làm cách nào để truy cập vào một biến môi trường (từ môi trường của con rối) trong bảng kê khai con rối?


Bạn có nghĩa là một biến được tạo bởi facter?
Scott Pack

Ý tôi là các biến môi trường bash như $ PATH và $ USER.
joeforker

Câu trả lời:


8

Tôi nghĩ rằng chúng tôi cần thêm thông tin về những gì bạn đang cố gắng để đạt được ... Facter hiển thị theo các biến môi trường FACTER_ mặc định:

https://docs.puppetlabs.com/guides/faq.html#can-i-access-en môi-biến-with-facter

 $ FACTER_FOO="bar" 
 $ export FACTER_FOO
 $ facter | grep 'foo'
   foo => bar

Nhưng với $ PATH hoặc $ USER ... Tại sao không nói với con rối sử dụng một đường dẫn cụ thể hoặc một người dùng (cho một người thực thi?) Một cách rõ ràng?


Việc kiểm soát một trình thông dịch với các biến môi trường là rất bình thường, vì nhiều lý do ... đặc biệt là nếu bạn nghĩ về việc đôi khi chạy rối như một trình thông dịch (trong dòng #!?) Thay vì một daemon ...
joeforker

Câu trả lời tuyệt vời. Tôi đã lãng phí rất nhiều thời gian để không nhận thấy rằng tất cả các biến Facter đều có tên viết thường ngay cả khi biến môi trường có tên viết hoa. Mọi người hãy chú ý đến ví dụ mà jnrg đưa ra.
Russell Silva

1
có liên kết bị hỏng
kenorb

7

Bạn cần sử dụng chức năng phía máy chủ cho việc này nếu bạn muốn môi trường của người điều khiển rối. Kể từ khi facter giúp bạn thực tế khách hàng.

$ RUBYLIB / con rối / trình phân tích cú pháp / hàm / env.rb:

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

Sử dụng nó trong bảng kê khai của bạn như:

$blah = env("PATH")

6

Từ những gì tôi có thể nói Puppet chạy mà không có bất kỳ biến môi trường Bash nào. Nó dường như có được tất cả môi trường của nó từ Facter. Có một đoạn script ở đây để nhập các envvars thông thường của bạn dưới dạng envv Facter.


Liên kết không hoạt động nữa. Bạn có thể vui lòng cập nhật câu trả lời cho phù hợp?
NA

1

Trong Puppet Enterprise 2.5.1, bạn có thể truy cập nó qua / etc / env.

Ngoài ra, hãy kiểm tra xem bạn có môi trường chính xác được xác định trong không /etc/puppetlabs/puppet/puppet.conf- nó sẽ trông giống như thế này:

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

-1

Câu trả lời hơi thất vọng: Bạn không thể (trừ khi bạn tăng cường Puppet hoặc Facter). Gần đây tôi đã viết một bài đăng blog ngắn về chủ đề này: Truy cập các biến môi trường trong Puppet

Tóm tắt ngắn gọn: Facter đang chạy trên mọi hệ thống đại lý Puppet. Chỉ cần tăng cường Facter để thu thập tất cả các biến môi trường và sau đó bạn có thể truy cập chúng trong bảng kê khai của Puppet.

Mong rằng sẽ giúp!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.