From d2c4bdf792815f0a0f54d717bdec619f03d984ab Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 23 Dec 2009 16:06:45 -0500 Subject: introduce config::global for global configs in conf.d and config::include for vhost snippets in include.d --- manifests/base.pp | 9 +++++++-- manifests/centos.pp | 4 ++-- manifests/config/file.pp | 31 ++++++++++++++++--------------- manifests/config/global.pp | 15 +++++++++++++++ manifests/config/include.pp | 43 +++++++++++++++++++++++++++++++++++++++++++ manifests/includes.pp | 2 +- manifests/joomla.pp | 2 +- manifests/ssl/base.pp | 2 +- manifests/ssl/centos.pp | 2 +- manifests/status/centos.pp | 2 +- 10 files changed, 88 insertions(+), 24 deletions(-) create mode 100644 manifests/config/global.pp create mode 100644 manifests/config/include.pp (limited to 'manifests') diff --git a/manifests/base.pp b/manifests/base.pp index a6953bc..5f2bac3 100644 --- a/manifests/base.pp +++ b/manifests/base.pp @@ -9,6 +9,11 @@ class apache::base { ensure => directory, owner => root, group => 0, mode => 0755; } + file{'include_dir': + path => '/etc/apache2/include.d', + ensure => directory, + owner => root, group => 0, mode => 0755; + } file{'modules_dir': path => '/etc/apache2/modules.d', ensure => directory, @@ -36,7 +41,7 @@ class apache::base { owner => root, group => 0, mode => 0644; } - apache::config::file{ 'defaults.inc': } - apache::config::file{ 'git.conf': } + apache::config::include{ 'defaults.inc': } + apache::config::global{ 'git.conf': } apache::vhost::file { '0-default': } } diff --git a/manifests/centos.pp b/manifests/centos.pp index 23c8e3c..4446114 100644 --- a/manifests/centos.pp +++ b/manifests/centos.pp @@ -37,7 +37,7 @@ class apache::centos inherits apache::package { include apache::logrotate::centos - apache::config::file{ 'welcome.conf': } - apache::config::file{ 'vhosts.conf': } + apache::config::global{ 'welcome.conf': } + apache::config::global{ 'vhosts.conf': } } diff --git a/manifests/config/file.pp b/manifests/config/file.pp index a72aacf..9e49c19 100644 --- a/manifests/config/file.pp +++ b/manifests/config/file.pp @@ -1,4 +1,5 @@ -# deploy apache (.conf) configuration file (non-vhost) +# deploy apache configuration file +# by default we assume it's a global configuration file define apache::config::file( $ensure = present, $source = 'absent', @@ -7,11 +8,11 @@ define apache::config::file( ){ $real_destination = $destination ? { 'absent' => $operatingsystem ? { - centos => "$apache::centos::config_dir/conf.d/${name}", - gentoo => "$apache::gentoo::config_dir/${name}", - debian => "$apache::debian::config_dir/conf.d/${name}", - ubuntu => "$apache::ubuntu::config_dir/conf.d/${name}", - openbsd => "$apache::openbsd::config_dir/conf.d/${name}", + centos => "${apache::centos::config_dir}/conf.d/${name}", + gentoo => "${apache::gentoo::config_dir}/${name}", + debian => "${apache::debian::config_dir}/conf.d/${name}", + ubuntu => "${apache::ubuntu::config_dir}/conf.d/${name}", + openbsd => "${apache::openbsd::config_dir}/conf.d/${name}", default => "/etc/apache2/${name}", }, default => $destination @@ -26,16 +27,16 @@ define apache::config::file( 'absent': { $real_source = $source ? { 'absent' => [ - "puppet://$server/modules/site-apache/conf.d/${fqdn}/${name}", - "puppet://$server/modules/site-apache/conf.d/${apache_cluster_node}/${name}", - "puppet://$server/modules/site-apache/conf.d/${operatingsystem}.${lsbdistcodename}/${name}", - "puppet://$server/modules/site-apache/conf.d/${operatingsystem}/${name}", - "puppet://$server/modules/site-apache/conf.d/${name}", - "puppet://$server/modules/apache/conf.d/${operatingsystem}.${lsbdistcodename}/${name}", - "puppet://$server/modules/apache/conf.d/${operatingsystem}/${name}", - "puppet://$server/modules/apache/conf.d/${name}" + "puppet://${server}/modules/site-apache/conf.d/${fqdn}/${name}", + "puppet://${server}/modules/site-apache/conf.d/${apache_cluster_node}/${name}", + "puppet://${server}/modules/site-apache/conf.d/${operatingsystem}.${lsbdistcodename}/${name}", + "puppet://${server}/modules/site-apache/conf.d/${operatingsystem}/${name}", + "puppet://${server}/modules/site-apache/conf.d/${name}", + "puppet://${server}/modules/apache/conf.d/${operatingsystem}.${lsbdistcodename}/${name}", + "puppet://${server}/modules/apache/conf.d/${operatingsystem}/${name}", + "puppet://${server}/modules/apache/conf.d/${name}" ], - default => "puppet://$server/$source", + default => "puppet://${server}/${source}", } File["apache_${name}"]{ source => $real_source, diff --git a/manifests/config/global.pp b/manifests/config/global.pp new file mode 100644 index 0000000..50e69b3 --- /dev/null +++ b/manifests/config/global.pp @@ -0,0 +1,15 @@ +# deploy apache configuration file (global) +# wrapper for apache::config::file +define apache::config::global( + $ensure = present, + $source = 'absent', + $content = 'absent', + $destination = 'absent' +){ + apache::config::file { "${name}": + ensure => $ensure, + source => $source, + content => $content, + destination => $destination, + } +} diff --git a/manifests/config/include.pp b/manifests/config/include.pp new file mode 100644 index 0000000..6ba3a86 --- /dev/null +++ b/manifests/config/include.pp @@ -0,0 +1,43 @@ +# deploy apache configuration file (includes for vhosts) +define apache::config::include( + $ensure = present, + $source = 'absent', + $content = 'absent', + $destination = 'absent' +){ + $real_destination = $destination ? { + 'absent' => $operatingsystem ? { + centos => "${apache::centos::config_dir}/include.d/${name}", + gentoo => "${apache::gentoo::config_dir}/${name}", + debian => "${apache::debian::config_dir}/include.d/${name}", + ubuntu => "${apache::ubuntu::config_dir}/include.d/${name}", + openbsd => "${apache::openbsd::config_dir}/include.d/${name}", + default => "/etc/apache2/${name}", + }, + default => $destination + } + if ($content == 'absent') { + $real_source = $source ? { + 'absent' => [ + "puppet://${server}/modules/site-apache/include.d/${fqdn}/${name}", + "puppet://${server}/modules/site-apache/include.d/${apache_cluster_node}/${name}", + "puppet://${server}/modules/site-apache/include.d/${operatingsystem}.${lsbdistcodename}/${name}", + "puppet://${server}/modules/site-apache/include.d/${operatingsystem}/${name}", + "puppet://${server}/modules/site-apache/include.d/${name}", + "puppet://${server}/modules/apache/include.d/${operatingsystem}.${lsbdistcodename}/${name}", + "puppet://${server}/modules/apache/include.d/${operatingsystem}/${name}", + "puppet://${server}/modules/apache/include.d/${name}" + ], + default => "puppet://${server}/${source}", + } + } + else { + $real_content = $content + } + apache::config::file { "${name}": + ensure => $ensure, + source => $real_source, + content => $real_content, + destination => $real_destination, + } +} diff --git a/manifests/includes.pp b/manifests/includes.pp index fa31e59..02502f8 100644 --- a/manifests/includes.pp +++ b/manifests/includes.pp @@ -1,5 +1,5 @@ # manifests/includes.pp class apache::includes { - apache::config::file{'do_includes.conf':} + apache::config::global{'do_includes.conf':} } diff --git a/manifests/joomla.pp b/manifests/joomla.pp index 02f398b..45d0b48 100644 --- a/manifests/joomla.pp +++ b/manifests/joomla.pp @@ -1,5 +1,5 @@ # manifests/joomla.pp class apache::joomla { - apache::config::file{'joomla.inc': } + apache::config::include{'joomla.inc': } } diff --git a/manifests/ssl/base.pp b/manifests/ssl/base.pp index 72f61fd..4aabb40 100644 --- a/manifests/ssl/base.pp +++ b/manifests/ssl/base.pp @@ -1,4 +1,4 @@ class apache::ssl::base { - ::apache::config::file{ 'ssl_defaults.inc': } + ::apache::config::include{ 'ssl_defaults.inc': } ::apache::vhost::file{ '0-default_ssl': } } diff --git a/manifests/ssl/centos.pp b/manifests/ssl/centos.pp index a516f02..b2c8ad8 100644 --- a/manifests/ssl/centos.pp +++ b/manifests/ssl/centos.pp @@ -4,5 +4,5 @@ class apache::ssl::centos inherits apache::ssl::base { ensure => present, require => Package[apache], } - ::apache::config::file{ 'ssl.conf': } + ::apache::config::global{ 'ssl.conf': } } diff --git a/manifests/status/centos.pp b/manifests/status/centos.pp index a7692dd..d893707 100644 --- a/manifests/status/centos.pp +++ b/manifests/status/centos.pp @@ -1,5 +1,5 @@ ### centos class apache::status::centos { - ::apache::config::file{ 'status.conf': } + ::apache::config::global{ 'status.conf': } } -- cgit v1.2.3