Forum: CFEngine Help
Subject: edit_template array variable expansion
Author: jremond
Link to topic: https://cfengine.com/forum/read.php?3,26061,26061#msg-26061
Hi all
I am trying to use the new template feature and but I get some unwanted
substitution
bundle agent dhcp
{
vars:
any::
"name" string => "srv1";
"name" string => "srv2";
"ip" string => "192.168.0.1";
"mac" string => "52:54:00:00:00:00";
"ip" string => "192.168.0.2";
"mac" string => "52:54:00:00:00:01";
"hosts" slist => getindices("name");
files:
debian::
"/tmp/hosts.example.expand"
handle => "update_dhcp_hosts_conf",
comment => "Update the hosts list for dhcp configuration",
create => "true",
edit_template => "/tmp/hosts.example";
}
and /tmp/hosts.example looks like
group {
ddns-domainname "$(def.domain)";
ddns-rev-domainname "in-addr.arpa";
[%CFEngine BEGIN %]
# BEGIN $(dhcp.hosts)
host $(dhcp.name[$(dhcp.hosts)]) {
hardware ethernet ${dhcp.mac[$(dhcp.hosts)]};
fixed-address ${dhcp.ip[$(dhcp.hosts)]};
option host-name "$(dhcp.name[$(dhcp.hosts)])";
ddns-hostname "$(dhcp.name[$(dhcp.hosts)])";
}
# END
[%CFEngine END %]
}
The result is (file hosts.example.expand) :
group {
ddns-domainname "example.com";
ddns-rev-domainname "in-addr.arpa";
# BEGIN srv1
host $(dhcp#name[$(dhcp.hosts)]) {
hardware ethernet ${dhcp#mac[$(dhcp.hosts)]};
fixed-address ${dhcp#ip[$(dhcp.hosts)]};
option host-name "$(dhcp#name[$(dhcp.hosts)])";
ddns-hostname "$(dhcp#name[$(dhcp.hosts)])";
}
# END
# BEGIN srv2
host $(dhcp#name[$(dhcp.hosts)]) {
hardware ethernet ${dhcp#mac[$(dhcp.hosts)]};
fixed-address ${dhcp#ip[$(dhcp.hosts)]};
option host-name "$(dhcp#name[$(dhcp.hosts)])";
ddns-hostname "$(dhcp#name[$(dhcp.hosts)])";
}
# END
}
Can anyone tell me why there are # ?
There is no difference between 3.3.1 and 3.3.2 on Debian amd64 server.
Jean
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine