Cfengine configuration directory

Iterating over variables

Relevant classes: any

Some examples:

Various



control:

 Split = ( , )
             
 children = (
            A("$(host)","host1,host2,host3")
            A(host,"host1,host2,host3")
            )

  list = ( "one,two,three,four" )

#######################################################################

shellcommands:

  "/bin/echo $(list) ${var:-foo}"

  "/bin/echo $(list) $(children[$(host)])"

#######################################################################

copy:

  /src/datafile dest=/tmp/datafile_$(this) 
             
   server=$(children[$(host)])

#######################################################################

methods:

   Iterate(void)

    server=$(children[$(host)])
    returnvars=aggregate

#######################################################################

editfiles:

 # Make a file with the hostname in it, for IDed data

 { /tmp/datafile_$(host)

 AutoCreate
 AppendIfNoSuchLine "$(host)"
 AppendIfNoSuchLine "$(children[$(host)])"

 InsertFile "$(children[$(host)])"
 }

Editfiles


control:

  list1 = ( a:b:c:d )

  list2 = ( 1:2:3:4 )

  hosts = ( host1:host2:host3 )

  files = ( file1:file2:file3:file4 )

editfiles:

  { /tmp/textfile

  # AppendIfNoSuchLine "Hello $(list1)"

  # Alternatives
  # DeleteLinesContaining "$(list1)xyz"
  # DeleteLinesMatching ".*[abcd]xyz.*"

  # ReplaceAll "$(list1)" With "$(derived[$(list1)])"
  }


  { /tmp/aggregate

  InsertFile "$(hosts)_$(files)"
  }


Back to documentation