- manage config directories, config file - manage systemd service and socket - manage users, service accounts and groups - manage defaults for users, services and groups - manage packages for role
40 lines
1.1 KiB
Puppet
40 lines
1.1 KiB
Puppet
# define a user object
|
|
define glauth::obj::user (
|
|
String $user_name,
|
|
String $mail,
|
|
Integer $uidnumber,
|
|
Integer $primarygroup,
|
|
String $passsha256,
|
|
Stdlib::Absolutepath $config_path,
|
|
String $givenname = '',
|
|
String $sn = '',
|
|
String $loginshell = '',
|
|
String $homedir = '',
|
|
Optional[Array[String]] $sshkeys = [],
|
|
Optional[Array[String]] $passappsha256 = [],
|
|
Optional[Array[Integer]] $othergroups = [],
|
|
) {
|
|
$formatted_othergroups = $othergroups.empty ? {
|
|
true => '[]',
|
|
false => "[${othergroups.join(', ')}]",
|
|
}
|
|
concat::fragment { "glauth_user_${user_name}":
|
|
target => $config_path,
|
|
content => epp('glauth/obj/user.epp', {
|
|
'name' => $user_name,
|
|
'givenname' => $givenname,
|
|
'sn' => $sn,
|
|
'mail' => $mail,
|
|
'uidnumber' => $uidnumber,
|
|
'primarygroup' => $primarygroup,
|
|
'loginshell' => $loginshell,
|
|
'homedir' => $homedir,
|
|
'passsha256' => $passsha256,
|
|
'sshkeys' => $sshkeys,
|
|
'passappsha256' => $passappsha256,
|
|
'othergroups' => $formatted_othergroups,
|
|
}),
|
|
order => '70',
|
|
}
|
|
}
|