0

我正在尝试在 Centos 7.6 上的 Foreman 1.20.1 中使用 Hammer 来刷新 Puppet exec 中的代理功能(或几乎除 --version 之外的任何其他命令)。我使用的命令在 shell 上运行良好。它在 Puppet exec 中失败:

错误:未定义的局部变量或方法 `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

我不关心幂等性,因为它只会刷新,我只想让命令工作。

我尝试添加其他选项,例如路径、用户、环境等,但无济于事。任何帮助表示赞赏。

4

1 回答 1

2

从我在https://github.com/awesome-print/awesome_print/issues/316https://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,
  }

去红宝石!

于 2019-02-06T08:44:43.343 回答