Chef InSpec の他のリソース内で 1 つのリソースを使用することは可能ですか?
例:
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)
実際にやりたいことは、他のユーザーにインストールされているユーティリティを実行する必要があり、そのセッションから返された出力を確認して検証する必要があることです。例 :
- Java をsrijavaユーザーとしてインストールしました
- Inspec で、Java バージョンをテストするコマンドを作成しました ( root
java -version
としてではなく、そのユーザーでのみ実行されると仮定します)。 - を使用する
su srijava
と、出力がルート セッションに返されず、テストが失敗します。 - なしで実行すると、ユーティリティはユーザーがSriJava
su 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
どうやってやるの?