Cfengine 3 example unit_user_edit_method.html

# Copyright (C) Cfengine AS # This file is part of Cfengine 3 - written and maintained by Cfengine AS. # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; version 3. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # To the extent this program is licensed as part of the Enterprise # versions of Cfengine, the applicable Commerical Open Source License # (COSL) may apply to this file if you as a licensee so wish it. See # included file COSL.txt. # body common control { bundlesequence => { "users" }; } body agent control { abortbundleclasses => { "ldap_fail" }; } #################################################################################### bundle agent users { vars: "users" slist => { "mark", "nakarin", "three" }; methods: "all" usebundle => fix_user("$(users)"); } ################################################################################### bundle agent fix_user(x) { classes: "ldap_fail" not => ldaparray("dat","ldap://eternity.iu.hio.no","dc=cfengine,dc=com","(uid=$(x))","subtree","none"); files: "/tmp/passwd" create => "true", edit_line => fix_passwd("$(x)"); reports: !ldap_fail:: "Editing user $(x)"; } #################################################################################### bundle edit_line fix_passwd(x) { insert_lines: "Hello $(x),$(fix_user.dat[uid]),$(fix_user.dat[gecos])"; }