From d5be34ca78f3330c4eb04ab59bc236641c392b94 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 18 Jun 2016 13:29:50 -0300 Subject: Adds apache::site::manage --- manifests/site/manage.pp | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 manifests/site/manage.pp (limited to 'manifests/site') diff --git a/manifests/site/manage.pp b/manifests/site/manage.pp new file mode 100644 index 0000000..c04bec3 --- /dev/null +++ b/manifests/site/manage.pp @@ -0,0 +1,61 @@ +define apache::site::manage( + $ensure = 'present', + $docroot = false, + $manage_docroot = true, + $owner = 'root', + $group = 'root', + $vhost = $name, +) { + case $ensure { + 'present': { + if ($docroot != false) and ($manage_docroot == true) { + if !defined(File["${docroot}"]) { + file { "${docroot}": + ensure => present, + owner => $owner, + group => $group, + mode => 0755, + recurse => false, + } + } + if !defined(Exec["check_docroot_${docroot}"]) { + # Ensure parent folder exist + exec { "check_docroot_${docroot}": + command => "/bin/mkdir -p ${docroot}", + unless => "/bin/sh -c '[ -e ${docroot} ]'", + user => root, + before => File["${docroot}"], + } + } + } + exec { "/usr/sbin/a2ensite $vhost": + command => $::lsbdistcodename ? { + 'wheezy' => "/usr/sbin/a2ensite $vhost.conf", + default => "/usr/sbin/a2ensite $vhost", + }, + unless => "/bin/sh -c '[ -L ${apache::conf_sites}-enabled/$vhost.conf ] \ + && [ ${apache::conf_sites}-enabled/$vhost.conf -ef ${apache::conf_sites}-available/$vhost.conf ]'", + require => Apache::Site::Config[$name], + notify => Exec["reload-apache2"], + } + } + 'absent': { + exec { "/usr/sbin/a2dissite $vhost": + command => $::lsbdistcodename ? { + 'wheezy' => "/usr/sbin/a2dissite $vhost.conf", + default => "/usr/sbin/a2dissite $vhost", + }, + onlyif => "/bin/sh -c '[ -L ${apache::conf_sites}-enabled/$vhost.conf ] \ + && [ ${apache::conf_sites}-enabled/$vhost.conf -ef ${apache::conf_sites}-available/$vhost.conf ]'", + require => Apache::Site::Config[$name], + notify => Exec["reload-apache2"], + } + + file { "${apache::conf_sites}-enabled/$vhost.conf": + ensure => absent, + notify => Exec["reload-apache2"], + } + } + default: { err ("Unknown ensure value: '$ensure'") } + } +} -- cgit v1.2.3