6. Idempotent
• Script:
service sshd stop
Stopping sshd: [ OK ]
service sshd stop
Stopping sshd: [FAILED]
• Puppet:
puppet resource service sshd ensure=stopped ...
notice: /Service[sshd]/ensure: ensure changed 'running' to
'stopped'
puppet resource service sshd ensure=stopped ...
7. Declarative
Puppet internal Puppet user
System state (is): Desire state (should):
service sshd status service { 'sshd':
ensure => running,
}
system == desire
No
noop?
No
Remedy (sync):
Report
service sshd start
19. rspec-puppet
• #rspec_test/manifests/init.pp
class rspec_test($message = ‘default’) {
notify { $message: }
}
• #rspec_test/spec/rspec_test_spec.rb
describe 'rspec_test' do
describe 'with default parameters' do
it { should contain_notify('default') }
end
describe 'when overriding message' do
let :params do {:message => 'override'} end
it { should contain_notify('override') }
end
end
20. Travis CI
• Github integration
• Invoke test on git push
• Simple test matrix