0

我是一个 puppet 初学者,我们正在尝试passenger.load为 Apache 创建一个包含命令输出的模块描述文件,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",但据我所知,木偶变量更像是常量。

此外,该passenger-config命令由 puppet 脚本本身提供(通过安装乘客),因此它在 puppet master 或 puppet 编译时不可用。

4

2 回答 2

1

我想不出用 puppet 的工作方式直接做到这一点的方法,所以这里有一些替代方案(可以修改或扩展):

  • 编写一个生成文件的脚本,如果文件不存在,则让 puppet 执行它。
  • 将passenger_config_root 公开为事实并在您的模板中使用它
于 2013-11-06T20:46:01.700 回答
1

虽然我无法直接回答您的问题(没有使用 Puppet 的经验),但有两种选择:

  1. 使用 Phusion APT 存储库安装Passenger。
  2. 使用Passenger tarball 而不是gem。这样你就可以控制它的确切路径。
于 2013-11-06T21:33:48.717 回答