1

尝试使用命令选项 puppet 运行命令 eval `ssh-agent -s,这给了我这些错误:

exec { 'eval' :
        command => "eval `ssh-agent -s`",
     }

给我这个错误:

Error: Validation of Exec[eval] failed: 'eval `ssh-agent -s`' is not qualified and no path was specified. Please qualify the command or specify a path. at /puppet.pp:18
    Wrapped exception:
'eval `ssh-agent -s`' is not qualified and no path was specified. Please qualify the command or specify a path.
4

3 回答 3

3

您需要为exec设置 PATH 。我可以通过设置路径参数在本地定义:

exec { 'eval' :
        command => "eval `ssh-agent -s`",
        path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ],
     }

或全球:

Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
于 2015-02-15T13:33:33.480 回答
0

您需要使用完全限定的路径。

例如:

exec { "sample":
  command => "/usr/bin/test",
}

或者:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}
于 2015-04-06T19:04:58.187 回答
-1

你的方法有缺陷。

无法通过exec资源运行命令来操纵 Puppet 代理的环境。每个这样的资源都会派生一个独立的子进程,而主环境保持不变。

更新:允许 Puppet 运行的最佳方法ssh-agent取决于您如何启动 Puppet 代理。例如,如果您使用/etc/init.d/puppet start,您将希望更改此初始化脚本以将 Puppet 进程ssh-agent直接包装在一个。如果您从 运行cron,请将作业更改为运行ssh-agent等。

于 2015-02-15T17:04:09.760 回答