Project

General

Profile

« Previous | Next » 

Revision 0fa8a928

Added by Gerard Hickey almost 9 years ago

add $manage_packages to control package install

closes GH-296

View differences:

manifests/agent/install.pp
# Install the puppet client installation
class puppet::agent::install {
package { $puppet::client_package:
ensure => $::puppet::version,
provider => $::puppet::package_provider,
if $::puppet::manage_packages == true or $::puppet::manage_packages == 'agent' {
package { $puppet::client_package:
ensure => $::puppet::version,
provider => $::puppet::package_provider,
}
}
}
manifests/init.pp
#
# $sharedir:: Override the system data directory.
#
# $manage_packages:: Should this module install packages or not.
# Can also install only server packages with value
# of 'server' or only agent packages with 'agent'.
# Defaults to true
#
# $package_provider:: The provider used to install the agent.
# Defaults to chocolatey on Windows
# Defaults to undef elsewhere
......
$rundir = $puppet::params::rundir,
$ssldir = $puppet::params::ssldir,
$sharedir = $puppet::params::sharedir,
$manage_packages = $puppet::params::manage_packages,
$package_provider = $puppet::params::package_provider,
$port = $puppet::params::port,
$listen = $puppet::params::listen,
......
if $server_puppetdb_host {
validate_string($server_puppetdb_host)
}
if $server_http {
validate_array($server_http_allow)
}
......
validate_re($server_environment_timeout, '^(unlimited|0|[0-9]+[smh]{1})$')
}
if $manage_packages != true and $manage_packages != false {
validate_re($manage_packages, '^(server|agent)$')
}
include ::puppet::config
Class['puppet::config'] -> Class['puppet']
manifests/params.pp
}
}
$manage_packages = true
$package_provider = $::osfamily ? {
'windows' => 'chocolatey',
default => undef,
manifests/server/install.pp
# Install the puppet server
class puppet::server::install {
$server_package_default = $::puppet::server_implementation ? {
'master' => $::osfamily ? {
'Debian' => ['puppetmaster-common','puppetmaster'],
/^(FreeBSD|DragonFly)$/ => [],
default => ['puppet-server'],
},
'puppetserver' => 'puppetserver',
}
$server_package = pick($::puppet::server_package, $server_package_default)
$server_version = pick($::puppet::server_version, $::puppet::version)
if $::puppet::manage_packages == true or $::puppet::manage_packages == 'server' {
$server_package_default = $::puppet::server_implementation ? {
'master' => $::osfamily ? {
'Debian' => ['puppetmaster-common','puppetmaster'],
/^(FreeBSD|DragonFly)$/ => [],
default => ['puppet-server'],
},
'puppetserver' => 'puppetserver',
}
$server_package = pick($::puppet::server_package, $server_package_default)
$server_version = pick($::puppet::server_version, $::puppet::version)
package { $server_package:
ensure => $server_version,
package { $server_package:
ensure => $server_version,
}
}
if $puppet::server_git_repo {
spec/classes/puppet_agent_install_spec.rb
end
describe "when manage_packages => false" do
let :pre_condition do
"class { 'puppet': manage_packages => false }"
end
let :facts do {
:osfamily => 'RedHat',
:concat_basedir => '/foo/bar',
:operatingsystemrelease => '6.6',
:puppetversion => Puppet.version,
} end
it 'should not contain Package[puppet]' do
should_not contain_package('puppet')
end
end
describe "when manage_packages => 'agent'" do
let :pre_condition do
"class { 'puppet': manage_packages => 'agent' }"
end
let :facts do {
:osfamily => 'RedHat',
:concat_basedir => '/foo/bar',
:operatingsystemrelease => '6.6',
:puppetversion => Puppet.version,
} end
it 'should contain Package[puppet]' do
should contain_package('puppet')
end
end
describe "when manage_packages => 'server'" do
let :pre_condition do
"class { 'puppet': manage_packages => 'server' }"
end
let :facts do {
:osfamily => 'RedHat',
:concat_basedir => '/foo/bar',
:operatingsystemrelease => '6.6',
:puppetversion => Puppet.version,
} end
it 'should not contain Package[puppet]' do
should_not contain_package('puppet')
end
end
end
spec/classes/puppet_server_spec.rb
it { should raise_error(Puppet::Error, /"golang" does not match/) }
end
describe "when manage_packages => false" do
let :pre_condition do
"class { 'puppet': server => true, manage_packages => false,
server_implementation => 'master' }"
end
it { should compile.with_all_deps }
it 'should not contain Package[puppet-server]' do
should_not contain_package('puppet-server')
end
end
describe "when manage_packages => 'agent'" do
let :pre_condition do
"class { 'puppet': server => true, manage_packages => 'agent',
server_implementation => 'master' }"
end
it { should compile.with_all_deps }
it 'should not contain Package[puppet-server]' do
should_not contain_package('puppet-server')
end
end
describe "when manage_packages => 'server'" do
let :pre_condition do
"class { 'puppet': server => true, manage_packages => 'server',
server_implementation => 'master' }"
end
it { should compile.with_all_deps }
it 'should contain Package[puppet-server]' do
should contain_package('puppet-server')
end
end
end

Also available in: Unified diff