【问题标题】:Run eval `ssh-agent -s` gives errors运行 eval `ssh-agent -s` 给出错误
【发布时间】:2015-02-15 11:28:10
【问题描述】:

尝试使用命令选项 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.

【问题讨论】:

    标签: ssh exec puppet puppetlabs-apache


    【解决方案1】:

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

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

    或全局:

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

    【讨论】:

      【解决方案2】:

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

      例如:

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

      或:

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

      【讨论】:

        【解决方案3】:

        你的方法有缺陷。

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

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

        【讨论】:

        • 票数“赞赏”,有评论就更好了。
        • 我投票支持你,但这里有一些评论:你的答案是正确的,但不是很有用。您提出的解决方案是什么?
        • @jbass 这很公平。谢谢!
        猜你喜欢
        • 2023-01-13
        • 1970-01-01
        • 2014-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        相关资源
        最近更新 更多