我尝试检查运行puppet agent的客户端上是否存在文件。 在我的木偶大师身上,我有一个像这样的template.erb:
<% if File.exists?('/usr/bin/lwp-request') %>SCRIPTWHITELIST="/usr/bin/lwp-request"<% end %>
我的rkhunter模块需要我的模板中的这个小代码。 结果始终为false,但文件存在。
如果我在puppet master上添加文件,结果为true。所以ruby代码似乎是在master上执行的。
如果客户端上存在文件,我如何检查我的模板?
在傀儡2.7.5和2.8.1上进行测试。
由于
答案 0 :(得分:1)
编译清单和模板时,有关节点的唯一信息是节点在请求目录时发送的Facts。
如果您需要来自节点的其他信息,则需要添加Custom Fact来检索所需的信息(例如文件是否存在)。然后,您可以在模板中使用自定义事实。
答案 1 :(得分:0)
在人偶模块中创建自定义事实lib/facter/lwp.rb
:
Facter.add(:lwp_request_exists) do
setcode do
File.exists?('/usr/bin/lwp-request')
end
end
然后在erb模板中使用类似的内容:
<% if $::lwp_request_exists -%>
some code...
<% end -%>