При использовании Ssh-команд Knife он использует другую версию ruby ​​на клиенте, чем если бы я ssh в нее вручную - PullRequest
0 голосов
/ 26 февраля 2019

Я сталкиваюсь с этой ошибкой, если я пытаюсь использовать knife ssh:

knife ssh my-node-name.com 'sudo chef-client' ... STDERR: ERROR: Error installing newrelic_resque_agent: redis requires Ruby version >= 2.2.2.

Но если я ssh в машину как myuser, тоsudo chef-client работает.Я обнаружил, что это потому, что исполняемые файлы ruby ​​различны:

knife ssh my-node-name.com 'whoami && sudo which ruby && ruby --version && echo $PATH'

myuser
/usr/bin/ruby
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Теперь, если я зайду в my-node-name.com под именем myuser и запусту whoami && sudo which ruby && ruby --version && echo $PATH

myuser
/usr/local/rvm/rubies/ruby-2.3.5/bin/ruby
ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
/usr/local/rvm/gems/ruby-2.3.5/bin:/usr/local/rvm/gems/ruby-2.3.5@global/bin:/usr/local/rvm/rubies/ruby-2.3.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/bin

Я использую chef-client --version => Chef: 12.12.15

Как заставить knife ssh работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...