0
我正在嘗試使用net/ssh gem來查找已安裝的軟件包到我的Test-Kitchen實例中。我做一個簡單的配方,重用構建必要的食譜。如何使用net/ssh gem來知道包是否已安裝?
這是我的食譜:
node['my-cookbook']['packages'].each do |pkg|
package pkg
end
而這些是我的屬性:
default['my-cookbook']['packages'] = %w[build-essential git bison]
這些都是一些步驟轉化爲我的黃瓜功能定義。
When(/^I ask for (.*)$/) do |package|
Net::SSH.start(@infrastructure['my-app'].ip,'vagrant', password: 'vagrant') do |ssh|
@out = ssh.exec!("dpkg --get-selections | grep #{package}")
end
end
Then(/^I should see (.*)$/) do |package_respond|
puts @out
@out.should match package_respond
end
當實例收斂時,build-essential被安裝並且黃瓜測試成功了。
輸出
puts @out
當時
grep: build-essential: No such file or directory
試驗是成功的,因爲expresion匹配。我期待
build-essential install
這裏發生了什麼? 未安裝軟件包時,控制檯響應一個空字符串。
如何檢查是否使用net/ssh gem將特定軟件包安裝到我的廚房實例中?
我的kithen實例是Ubuntu 12.04。
謝謝。
你爲什麼要使用Net :: SSH?爲什麼不使用像serverspec或bats這樣的busser。請格式化您的代碼。 – sethvargo
我怎樣才能在黃瓜內使用serverspec? – Robert
你不知道。不要使用黃瓜... – sethvargo