我正在尝试在 Centos 7.6 上的 Foreman 1.20.1 中使用 Hammer 来刷新 Puppet exec 中的代理功能(或除 --version 以外的任何其他命令(。我正在使用的命令在外壳上工作正常。它在傀儡执行中失败,并具有:
错误:未定义的局部变量或方法"dotfile" 注意:/Stage[main]/Profiles::Test/Exec[test]/returns:你的意思是? @@dotfile 通知:/Stage[main]/Profiles::Test/Exec[test]/returns: 错误:没有这样的子命令"代理"。
我使用的代码是:
class profiles::test{
exec {'test':
command => '/usr/bin/hammer proxy refresh-features --name $(hostname)',
}
}
include profiles::test
我不关心幂等性,因为它只会刷新,我只想让命令工作。
我尝试添加其他选项,例如路径,用户,环境等,但无济于事。 任何帮助表示赞赏。
根据我在 https://github.com/awesome-print/awesome_print/issues/316 和 https://grokbase.com/t/gg/puppet-users/141mrjg2bw/problems-with-onlyif-in-exec 找到的线索,事实证明必须设置HOME环境。 所以工作代码是:
exec {'test':
command => '/usr/bin/hammer proxy refresh-features --name $(hostname)',
environment => ["HOME=/root"],
refreshonly => true,
}
该死的红宝石!