私は人形に以下のコードを持っています
if $::operatingsystemmajrelease < 7 {
file { '/etc/sudoers' :
ensure => present,
owner => 'root',
group => 'root',
mode => '0440',
content => template('sudo/sudoers.erb'),
}
}
私はこれのためにserverspecを書きました
require 'spec_helper'
if os[:release] == '6'
describe file('/etc/sudoers') do
it { should exist }
it { should be_owned_by 'root' }
it { should be_grouped_into 'root' }
it { should be_mode 440 }
its(:content) { should match /Defaults requiretty/}
end
end
1) メッセージの下に表示される理由
No examples found.
Finished in 0.00038 seconds (files took 0.44176 seconds to load)
0 examples, 0 failures
私のOSバージョンは6なので、serverspecコードをコンパイルする必要がありますが、すべての例を実行できないのはなぜですか.
に変更すると、serverspecは機能していますif os[:release] < '7'
2) } 4 オクテット マッチングit { should be_mode 440 }
を指定した場合もサポートしません。it { should be_mode 0440
エラーを下回る
File "/etc/sudoers" should be mode 288
On host `localhost'
Failure/Error: it { should be_mode 0440 }
expected `File "/etc/sudoers".mode?(288)` to return true, got false
/bin/sh -c stat\ -c\ \%a\ /etc/sudoers\ \|\ grep\ --\ \\\^288\\\$
# ./spec/localhost/sudo_spec.rb:9:in `block (2 levels) in <top (required)>'
Finished in 0.05873 seconds (files took 0.48314 seconds to load)