diff options
Diffstat (limited to 'manifests/site/user.pp')
-rw-r--r-- | manifests/site/user.pp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/manifests/site/user.pp b/manifests/site/user.pp new file mode 100644 index 0000000..ec5866c --- /dev/null +++ b/manifests/site/user.pp @@ -0,0 +1,56 @@ +define apache::site::user( + $ensure = present, + $mpm = true, + $manage_user = true, + $user = $name, + $gid = $name, + $ticket = false, + $password = '*', + $comment = '', + $sshkey = absent, + $sshkey_options = [], + $groups = '', + $shell = '/bin/false', +){ + if $mpm == true and $manage_user == true and $user != 'root' { + if $ensure == present { + if !defined(Group[$gid]) { + group { "$gid": + ensure => present, + } + } + + if !defined(User["$user"]) { + user::manage { "$user": + tag => "virtual", + password => $password, + gid => $gid, + comment => $comment, + ticket => $ticket, + groups => $groups, + sshkey => $sshkey, + sshkey_options => $sshkey_options, + shell => $shell, + ensure => present, + require => Group[$gid], + } + } + } + else { + if !defined(User["$user"]) { + user::manage { "$user": + tag => "virtual", + password => $password, + ensure => absent, + } + } + + if !defined(Group[$gid]) { + group { "$gid": + ensure => absent, + require => User[$user], + } + } + } + } +} |