Cleanup.
[chaosvm.git] / modules / common / manifests / accountsetup.pp
1 class common::accountsetup {
2
3   # required to delete primary usergroups
4   augeas { 'allow_not_existent_group':
5     context => '/files/etc/login.defs',
6     changes => [ 'set USERGROUPS_ENAB no' ],
7   }
8
9   define account (
10     $comment,
11     $groups,
12     $uid,
13     $sshtype,
14     $sshkey,
15     $ensure,
16     $membership = 'inclusive',
17     $shell = '/bin/bash',
18   ) {
19     
20     user { $name:
21       ensure => $ensure,
22       comment => $comment,
23       uid => $uid,
24       gid => $name,
25       groups => $groups,
26       membership => $membership,
27       home => "/home/$name",
28       managehome => true,
29       shell => $shell,
30       require => Augeas['allow_not_existent_group'],
31     }
32     
33     group { $name:
34       ensure => $ensure,
35       system => false,
36       gid => $uid,
37     }
38   
39     ssh_authorized_key { $name:
40       ensure   => $ensure,
41       user     => $name,
42       type     => $sshtype,
43       key      => $sshkey,
44     }
45     
46   }
47   
48   # make sure all absent users are realized!
49   Account <| ensure == absent |> {
50     groups => 'nogroup',
51   }
52
53 }