【发布时间】:2014-05-06 09:31:14
【问题描述】:
我正在尝试使用 net/ssh gem 在我的 Test-Kitchen 实例中查找已安装的包。我做了一个简单的食谱,可以重复使用构建必备的食谱。
这是我的食谱:
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
测试成功,因为表达式匹配。我期待
build-essential install
这里发生了什么?? 当未安装软件包时,控制台会以空字符串响应。
如何使用 net/ssh gem 来检查我的厨房实例中是否安装了特定的软件包?
我的 kithen 实例是 ubuntu 12.04。
谢谢。
【问题讨论】:
-
为什么要使用 Net::SSH?为什么不使用像 serverspec 或 bats 这样的 busser。请同时格式化您的代码。
-
我如何在黄瓜中使用 serverspec ??
-
你没有。不要使用黄瓜...
标签: ssh grep dpkg net-ssh test-kitchen