Puppet Class: r_profile::user

Defined in:
manifests/user.pp

Overview

R_profile::User

Support for creating users and groups in bulk

Parameters:

  • users (Any) (defaults to: hiera("r_profile::user::users", false))

    Hash of user resources to create (suitable for ensure_resources)

  • groups (Any) (defaults to: hiera("r_profile::user::groups", false))

    Hash of group resources to create (suitable for ensure_resources)

  • deluxe (Any) (defaults to: hiera("r_profile::user::deluxe", false))

    Popuplate all user resources listed with a cool skeleton of files



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'manifests/user.pp', line 8

class r_profile::user(
    $users  = hiera("r_profile::user::users", false),
    $groups = hiera("r_profile::user::groups", false),
    $deluxe = hiera("r_profile::user::deluxe", false),
) {

  $default_ensure = {'ensure' => 'present'}
  if $users {
    ensure_resources("user", $users, $default_ensure)

    $users.each |$title, $hash| {
      # if homedir set, create it
      $home = dig($hash, 'home')

      if $home {
        $homedir_group = pick(dig($hash, 'gid'), $title)
        $homedir = {
          $home => {
            "ensure" => "directory",
            "owner"  => $title,
            "group"  => $homedir_group,
            "mode"   => "0700",
          }
        }
        ensure_resources("file", $homedir)
      }

      if $deluxe {
        # copy in skeleton files, setup nice prompt, etc
        bash_user_skel { $user: }
      }
    }

  }

  if $groups {
    ensure_resources("group", $groups, $default_ensure)
  }


}