Mit folgendem Promise werden die Benutzer new_user1 bis new_user3 mit Home-Verzeichnissen und definierten UIDs (User IDs) angelegt.
bundle agent add_users
{
methods:
"create_users" usebundle => create_users("add_users.users");
vars:
# Hier die User einpflegen, die angelegt werden sollen
# Erster User
"users[new_user1][uid]" string => "6666";
"users[new_user1][description]" string => "NeuerUser1, R4, HZD";
# Zweiter User
"users[new_user2][uid]" string => "6667";
"users[new_user2][description]" string => "NeuerUser2, R4, HZD";
# Dritter User
"users[new_user3][uid]" string => "6668";
"users[new_user3][description]" string => "NeuerUser3, R4, HZD";
# Weitere User wie oben reinpacken, je nach Bedarf
}
bundle agent create_users(info)
{
vars:
# Hier die Netzsegemente oder einzelne IPs eintragen, auf denen die User
# User eingerichtet werden sollen UND ZWAR mit _ anstelle von . !!!
"ServerList" slist => { "192_168_1" }; # alle Rechner im Subnetz
# Die User werden von oben übergeben
"user" slist => getindices("$(info)");
classes:
"server" or => {@(ServerList)};
"add_${user}" not => userexists( ${user} );
users:
"add_${user}.server":: # User wird nur angelegt, wenn er nicht existiert
"$(user)"
uid => " $($(info)[$(user)][uid])",
policy => "present",
description => "$($(info)[$(user)][description])",
home_dir => "/home/$(user)",
home_bundle => setup_home_dir("$(user)"),
#home_bundle_inherit => "true",
group_primary => "users",
password => ThePassword,
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'
}