summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2008-10-06 20:33:54 +0000
committermh <mh@immerda.ch>2008-10-06 20:33:54 +0000
commitade7be48786f70adda0260c60ca28e4ca1288f2a (patch)
tree2e462b4799e226cc37c9aed5924c2d9d3e97453a
parente53f62b3fcda2b94bd705b52b7bc851ff59c5de1 (diff)
introduce some dependencies, manage home now by usertype, cleaned up whitespace stuff
-rw-r--r--manifests/init.pp92
1 files changed, 44 insertions, 48 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 1a5b4e7..de635ce 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -10,59 +10,55 @@ class user {}
# ssh:_key have to be handed over as the classname
# containing the ssh_keys
define user::define_user(
- $name,
- $name_comment = '',
- $uid,
- $gid,
- $home_dir = '',
+ $name_comment = '',
+ $uid,
+ $gid,
+ $home_dir = '',
$home_dir_mode = '0750',
- $ssh_key = '',
- $shell = ''
- ){
+ $ssh_key = '',
+ $shell = ''
+){
+ $real_home_dir = $home_dir ? {
+ '' => "/home/$name",
+ default => $home_dir
+ }
- $real_home_dir = $home_dir ? {
- '' => "/home/$name",
- default => $home_dir
- }
-
- $real_name_comment = $name_comment ? {
- '' => $name,
- default => $name_comment,
- }
-
- $real_shell = $shell ? {
- '' => $operatingsystem ? {
- openbsd => "/usr/local/bin/bash",
- default => "/bin/bash",
- },
- default => $shell,
- }
+ $real_name_comment = $name_comment ? {
+ '' => $name,
+ default => $name_comment,
+ }
- user { $name:
- allowdupe => false,
- comment => "$real_name_comment",
- ensure => present,
- gid => $gid,
- home => $real_home_dir,
- shell => $real_shell,
- uid => $uid,
- }
+ $real_shell = $shell ? {
+ '' => $operatingsystem ? {
+ openbsd => "/usr/local/bin/bash",
+ default => "/bin/bash",
+ },
+ default => $shell,
+ }
- case $name {
- root: {}
- default: {
- group { $name:
- allowdupe => false,
- ensure => present,
- gid => $gid
- }
- }
- }
+ user { $name:
+ allowdupe => false,
+ comment => "$real_name_comment",
+ ensure => present,
+ gid => $gid,
+ home => $real_home_dir,
+ managehome => true,
+ shell => $real_shell,
+ uid => $uid,
+ before => Class[$ssh_key],
+ }
- file {$real_home_dir:
- ensure => directory,
- mode => $home_dir_mode, owner => $name, group => $gid;
- }
+ case $name {
+ root: {}
+ default: {
+ group { $name:
+ allowdupe => false,
+ ensure => present,
+ gid => $gid
+ require => User[$name],
+ }
+ }
+ }
case $ssh_key {
'': {}