Anlegen von einem Benutzer / Benutzerkonto

Mit folgendem Promise wird der Benutzer NewUser1 mit den definierten Parametern auf den in ServerList definierten Zielsystemen angelegt:

bundle agent add_user
{
vars:
    "ServerList"        slist  => { "IP" };
    "User"              slist  => { "NewUser1" };
    "UID"               slist  => { "1234" };
    "UserDescription"   slist  => { "Description of the user" };
 
  classes:
     "server" or => {@(ServerList)};
     "create_user_${User}" not => userexists( ${User} );
 
  users:
    "create_user_${User}.server"::
      "$(User)"
        uid => "$(UID)",
        policy => "present",
        description => "$(UserDescription)",
        home_dir => "/home/$(User)",
        home_bundle => setup_home_dir("$(User)"),
        group_primary => "users",
        password => ThePassword, # Hiermit wird unten der body password aufgerufen, der das Initialpasswort "CFEngine" setzt
        shell => "/bin/bash",
          classes => if_repaired("user_added");
 
  reports:
    user_added::
        "User $(User) ist hinzugefĆ¼gt.";
}
 
bundle agent setup_home_dir(User)
{
  files:
        "/home/$(User)/."
          create => "true";
}
 
body password ThePassword
{
        format => "hash";
          data => "jNKlcaMQIuqBY"; # "CFEngine" # erstellt via 'openssl passwd'
}