Serverspe c s sh приводит к: Ошибка обнаружения ОС - PullRequest
0 голосов
/ 24 марта 2020

Недавно у меня возникла проблема с использованием гема net -s sh для моего Linux удаленного хоста. Чтобы исключить любую странную среду, была выполнена чистая serverspec-init с выбранными параметрами Linux / S SH и соответствующим удаленным хостом. Кроме того, я настроил spec_helper.rb следующим образом:

require 'serverspec'
require 'net/ssh'

set :backend, :ssh

host = ENV['TARGET_HOST']
options = Net::SSH::Config.for(host)
options[:user] ||= "MYUSER"
options[:password] ||= "MYPASSWORD"
set :sudo_password, "MYPASSWORD"
set :host,        options[:host_name] || host
set :ssh_options, options

И это привело к следующему выводу:

C:\Users\JumpStart\Documents\Repositories\connecttest>rake spec
C:/Ruby27-x64/bin/ruby.exe -I'C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.2/lib';'C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.1/lib' 'C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.1/exe/rspec' --pattern 'spec/MYHOST/*_spec.rb'

An error occurred while loading ./spec/MYHOST/sample_spec.rb.
On host `MYHOST'
Failure/Error:
  describe package('httpd'), :if => os[:family] == 'redhat' do
    it { should be_installed }
  end
NotImplementedError:
  OS detection failed.

# ./spec/MYHOST/sample_spec.rb:3:in `<top (required)>'
No examples found.

Finished in 0.00006 seconds (files took 11.86 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

C:/Ruby27-x64/bin/ruby.exe -I'C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rspec-support-3.9.2/lib';'C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.1/lib' 'C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/rspec-core-3.9.1/exe/rspec' --pattern 'spec/MYHOST/*_spec.rb' failed

Обычно я могу sh подключиться вручную к хосту с имя пользователя / пароль.

...