Forum: Cfengine Help
Subject: Re: Cfengine3 binds to wrong interface when having multiple interfaces
Author: berntjernberg
Link to topic: https://cfengine.com/forum/read.php?3,22186,22683#msg-22683
Hi all,
Consider this ifconfig-printout from a Solaris 10 ldom. The hosts primary
interface ($(sys.host))
is e1000g1:1. How can I dynamically bind to it without hard coding all hosts ip
addresses?
lo0: flags=2001000849 mtu 8232 index 1
inet XXX.XXX.XXX.XXX netmask xxxxxxxx
lo0:1: flags=2001000849 mtu 8232 index 1
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx
lo0:2: flags=2001000849 mtu 8232 index 1
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx
lo0:3: flags=2001000849 mtu 8232 index 1
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx
lo0:4: flags=2001000849 mtu 8232 index 1
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx
e1000g0: flags=1000843 mtu 1500 index 2
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g0:1: flags=1000843 mtu 1500 index 2
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g0:2: flags=1000843 mtu 1500 index 2
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g0:3: flags=1000843 mtu 1500 index 2
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g1: flags=1000843 mtu 1500 index 3
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
groupname ipmp0
e1000g1:1: flags=9040843 mtu 1500 index 3
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g1:2: flags=1000843 mtu 1500 index 3
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g1:3: flags=1000843 mtu 1500 index 3
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g1:4: flags=1000843 mtu 1500 index 3
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g1:5: flags=1000843 mtu 1500 index 3
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
e1000g1:6: flags=1000843 mtu 1500 index 3
zone a-zonename
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
igb0: flags=1000802 mtu 1500 index 4
inet XXX.XXX.XXX.XXX netmask 0
igb1: flags=39040802 mtu 1500 index 5
inet XXX.XXX.XXX.XXX netmask xxxxxxxx broadcast XXX.XXX.XXX.XXX
groupname ipmp0
I tried this in my site.cf
bundle common g
{
vars:
any::
"my_ip" string => host2ip("$(sys.fqhost)");
}
and then in promises.cf:
body agent control
{
any::
bindtointerface => "$(g.my_ip)";
....
}
Code wise this works but the variable seem to be interpolated after
bindtointerface is used.
Mail send from multi homed hosts have the first interface Cfengine finds in the
subject. In this
case e1000g0.
How can I dynamically bind to e1000g1:1 without hard coding all hosts
ipaddresses?
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine