【发布时间】:2016-11-02 07:52:34
【问题描述】:
是否可以在 Chef InSpec 的其他资源中使用一种资源?
示例:
describe command('su srijava') do
describe file ('/app/java/latest') do
it{ should exist }
end
end
它会抛出如下错误:
`method_missing': undefined method `file' for RSpec::ExampleGroups::CommandSuSriava:Class (NoMethodError)
实际上我想要做的是我需要运行一个安装在其他用户中的实用程序,我必须检查从该会话返回的输出并验证它。示例:
- 我以 srijava 用户身份安装了 java
- 现在在 Inspec 中,我编写了测试 Java 版本的命令(假设
java -version仅在该用户中运行,而不是以 root 身份运行)。 - 如果我使用
su srijava,那么我不会得到返回的输出 根会话和测试失败 - 如果我在没有
su srijava的情况下运行,那么我的实用程序将抛出一个错误 用户不是 SriJava
带有su 的代码:
describe command('su srijava ; cd /app/java; ./java --version') do
its('stdout') { should match('1.7') }
end
没有su的代码:
describe command('cd /app/java; ./java --version') do
its('stdout') { should match('1.7') }
end
我该怎么做?
【问题讨论】:
标签: rspec chef-infra inspec