运行 eval `ssh-agent -s` 给出错误

Run eval `ssh-agent -s` gives errors

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

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.

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

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

或全球:

Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }

你的方法有问题。

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

更新: 允许 Puppet 使用 ssh-agent 运行 的最佳方法取决于您如何启动 Puppet 代理。例如,如果您使用 /etc/init.d/puppet start,您将需要更改此初始化脚本以直接将 Puppet 进程包装在 ssh-agent 中。如果你从cron运行,把工作换成运行ssh-agent等等

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

例如:

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

或:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}