diff options
Diffstat (limited to 'manifests/init.pp')
-rw-r--r-- | manifests/init.pp | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index ae7acc0..3eb5ee2 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -60,6 +60,10 @@ class apache { ensure => installed, } + package { "apache2-mpm-itk": + ensure => installed, + } + service { "apache": name => "apache2", ensure => running, @@ -98,7 +102,9 @@ class apache { $redirect_match = false, $protocol = 'http', $aliases = false, $server_alias = false, $use = false, $ticket = false, $source = false, $template = 'apache/site.erb', $filename = '', - $manage_docroot = true, $owner = "root", $group = "root") { + $manage_docroot = false, $owner = '', $group = '', + $mpm = true, $password = '*', $comment = '', $sshkey = absent, + $groups = '', $shell = '/bin/false') { $vhost = $filename ? { '' => "$title", @@ -110,6 +116,32 @@ class apache { default => $base_domain, } + $user = $owner ? { + '' => $title, + default => $owner, + } + + $gid = $group ? { + '' => $title, + default => $group, + } + + if $mpm == true && $user != 'root' { + if !defined(User["$user"]) { + user::manage { "$user": + tag => "virtual", + password => $password, + gid => $gid, + comment => $comment, + ticket => $ticket, + groups => $groups, + sshkey => $sshkey, + shell => $shell, + ensure => $ensure, + } + } + } + case $source { true: { file { "${apache2_sites}-available/$vhost": @@ -156,8 +188,8 @@ class apache { if !defined(File["${docroot}"]) { file { "${docroot}": ensure => present, - owner => $owner, - group => $group, + owner => $user, + group => $gid, mode => 0755, recurse => false, } @@ -167,6 +199,7 @@ class apache { exec { "check_docroot_${docroot}": command => "/bin/mkdir -p ${docroot}", unless => "/bin/sh -c '[ -e ${docroot} ]'", + user => root, before => File["${docroot}"], } } |