尝试使用命令选项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.
答案 0 :(得分:3)
您需要为exec设置路径。我可以通过设置路径参数在本地定义:
exec { 'eval' :
command => "eval `ssh-agent -s`",
path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ],
}
或全球:
Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
答案 1 :(得分:0)
您需要使用完全限定的路径。
例如:
exec { "sample":
command => "/usr/bin/test",
}
或:
exec { "sample":
path => ['/usr/bin', '/usr/sbin', '/bin'],
command => "test",
}
答案 2 :(得分:-1)
你的方法存在缺陷。
通过exec
资源运行命令无法操纵Puppet代理的环境。每个这样的资源都会分离一个独立的子进程,主要环境保持不变。
更新:允许Puppet与ssh-agent
一起运行的最佳方法取决于您启动Puppet代理的方式。例如,如果您使用/etc/init.d/puppet start
,则需要更改此init脚本以将Puppet进程直接包装在ssh-agent
中。如果您从cron
运行,请将作业更改为运行ssh-agent
等。