Cfengine 3 example unit_customize_by_named_list.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. ######################################################## # # Simple test - copy from a single directory of spec files # generating multiple directories and special # edits. # ######################################################## body common control { bundlesequence => { "virtualhosts" }; version => "1.2.3"; } ######################################################## bundle agent virtualhosts { vars: "vmbase" string => "/home/mark/tmp/vm"; "source_files" string => "/home/mark/tmp/src"; # list of hosts to create "hostlist" slist => { "host1", "host2", "host3", "host4", "host5", "host6", "host7", "host8", "host9" }; ################### or just a new file to the dir ################ # # "hostlist" slist => { SelectFilesIn("$(source_files)",".*") } # ################################################################## files: "$(vmbase)/$(hostlist)/config_for_$(hostlist).vm" copy_from => buildvm("$(source_files)/template_$(hostlist)"); # # Now edit config .e.g. edit in $(ipadr[$(hostlist)]) for each # } ######################################################### # library template ######################################################### body copyfrom buildvm(from) { source => "$(from)"; copy_backup => "true"; #/false/timestamp }