Запуск eval `ssh-agent -s` выдает ошибки

Попытка запустить команду 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.

3 ответа

Решение

Вам нужно настроить PATH для вас exec. Я могу быть определен локально, установив параметр пути:

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

или глобально:

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

Вам нужно использовать полный путь.

Например, либо:

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

или же:

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

Ваш подход ошибочен.

Невозможно управлять средой агента Puppet, выполняя команды через exec Ресурсы. Каждый такой ресурс разветвляется на подпроцесс, который является независимым, а основное окружение остается неизменным.

Обновление: лучший подход, чтобы позволить Puppet работать с ssh-agent зависит от того, как вы запускаете Puppet agent. Например, если вы используете /etc/init.d/puppet start, вы хотите изменить этот скрипт инициализации, чтобы обернуть процесс Puppet в ssh-agent непосредственно. Если вы бежите от cron, смени работу для запуска ssh-agent и т.п.

Другие вопросы по тегам