簡體   English   中英

如何在Puppet中的模板中使用命令的輸出?

[英]How do I use the output of a command in a template in Puppet?

我是一個木偶初學者,我們正在嘗試為Apache創建一個passenger.load模塊描述文件,其中包含命令passenger-config --root的輸出,結果如下所示:

 LoadModule passenger_module /var/lib/gems/2.0.0/gems/passenger-4.0.14/buildout/apache2/mod_passenger.so
 ...

為此,我們使用了包含以下行的模板passenger.load.erb

LoadModule passenger_module <%= @passenger_root %>/buildout/apache2/mod_passenger.so
...

現在的問題是:如何設置變量passenger_root 我需要像$passenger_root = "OUTPUT OF passenger-config --root" ,但據我所知,木偶變量更像是常量。

此外,puppet腳本本身(通過安裝乘客)可以使用passenger-config命令,因此它不能在puppet master或puppet編譯時使用。

我想不出用木偶的工作方式直接做到這一點的方法,所以這里有一些替代方案(可以修改或擴展):

  • 編寫一個生成文件的腳本,如果文件不存在,則讓puppet執行它。
  • 將passenger_config_root公開為facter事實並在模板中使用它

雖然我無法直接回答您的問題(沒有Puppet經驗),但有兩種選擇:

  1. 使用Phusion APT存儲庫安裝Passenger。
  2. 使用Passenger tarball而不是gem。 這樣你就可以控制它的確切路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM