Я сталкиваюсь с этой ошибкой, если я пытаюсь использовать 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
работать?