summaryrefslogtreecommitdiff
path: root/manifests/site/user.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/site/user.pp')
-rw-r--r--manifests/site/user.pp56
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],
+ }
+ }
+ }
+ }
+}