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'
}