puppet-openstack-cloud/spec/classes/cloud_install_puppetmaster.rb
Yanis Guenane f251def4b0 install: Automatization of the install-server
This commit aims to make it possible to automate the install server
It allows the automatization of the following pieces :

  * The Puppet Master Server
  * The PuppetDB server
  * The hiera configuration

Change-Id: I5f4419ed6cb1668c1d135e9760cbb390ffdf2c68
2014-12-10 07:57:51 -05:00

113 lines
2.9 KiB
Ruby

require 'spec_helper'
describe 'cloud::install::puppetmaster' do
shared_examples_for 'puppetmaster' do
let :params do
{ :puppetconf_path => '/etc/puppet/puppet.conf',
:main_configuration => {},
:agent_configuration => {
'certname' => { 'setting' => 'certname', 'value' => 'foo.bar' }
},
:master_configuration => {
'timeout' => { 'setting' => 'timeout', 'value' => '0' }
}}
end
it 'install puppetmaster package' do
is_expected.to contain_package(platform_params[:puppetmaster_package_name]).with({
:ensure => 'present',
})
end
it 'ensure puppetmaster is stopped' do
is_exptected.to contain_server(platform_params[:puppetmaster_service_name]).with({
:ensure => 'stopped',
:hasstatus => true,
:hasrestart => true,
})
end
it 'generate certificate if necessary' do
is_expected.to contain_exec('puppet cert generate node.example.com')
end
it 'install hiera' do
is_expected.to contain_class('hiera')
end
it 'configure the puppetdb settings of puppetmaster' do
is_exptected.to contain_class('puppetdb::master::config')
end
it 'configure the puppet master configuration file' do
is_expected.to contain_init_setting('certname').with(
:setting => 'certname',
:value => 'foo.bar',
:section => 'agent',
:path => '/etc/puppet/puppet.conf',
)
is_expected.to contain_init_setting('timeout').with(
:setting => 'timeout',
:value => '0',
:section => 'master',
:path => '/etc/puppet/puppet.conf',
)
end
it 'configure the autosign.conf' do
is_expected.to contain_file('/etc/puppet/autosign/conf').with({
:ensure => 'present',
:owner => 'puppet',
:group => 'puppet',
:conent => 'template(\'cloud/installserver/autosign.conf.erb\')',
})
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian',
:fqdn => 'node.example.com'
}
end
let :platform_params do
{ :puppetmaster_package_name => 'puppet-server',
:puppetmaster_service_name => 'puppetmaster',
}
end
it_configures 'puppetmaster'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat',
:fqdn => 'node.example.com'
}
end
let :platform_params do
{ :puppetmaster_package_name => 'puppetmaster',
:puppetmaster_service_name => 'puppetmaster',
}
end
it_configures 'puppetmaster'
context 'on Maj Release 7' do
facts.merge!(:operatingsystemmajrelease => '7')
it 'ensure package mod_passenger is not installed' do
is_expected.to contain_package('mod_passenger').with({
:ensure => 'absent',
})
end
end
end
end