Forum: CFEngine Help
Subject: Replace underscores in interface names (creating routes)
Author: alan.hatch
Link to topic: https://cfengine.com/forum/read.php?3,26010,26010#msg-26010

We are using interface aliases with periods that are being converted into 
underscores in certain cases.  I am trying to create a file called 
route-bond0.748 using only cfengine goodness so servers on two different 
administrative networks talk accross the correct interface:

bundle agent test_linux {

vars:

     "local_ip_addresses" slist => { @(sys.ip_addresses) };
    "nics" slist => getindices("sys.ipv4");
    "interfaces" slist => { @(sys.interfaces) };


classes:

    "core_ip_dc1_$(nics)"          expression => 
regcmp("(10\.152\.48\..*)","$(sys.ipv4[$(nics)])");
    "core_ip_dc2_$(nics)"           expression => 
regcmp("(10\.154\.48\..*)","$(sys.ipv4[$(nics)])");

reports:

    test01lp::

        "NICS: $(nics)";

        "INTERFACE: $(interfaces)";

        "ROUTE: 10.152.48.0/24 via $(sys.ipv4[$(nics)]) dev $(nics)"
            ifvarclass => "core_ip_dc2_$(nics)";

        "ROUTE: 10.154.48.0/24 via $(sys.ipv4[$(nics)]) dev $(nics)"
            ifvarclass => "core_ip_dc1_$(nics)";

}

Which shows:

R: NICS: bond0_724
R: NICS: bond0_748
R: INTERFACE: bond0.724
R: INTERFACE: bond0.748
R: ROUTE: 10.152.48.0/24 via 10.154.48.9 dev bond0_748

So I can access the actual interface name in a list, but the same entry in the 
required associative array has an underscore.

I need to be able to create the file named "route-interface"  at a minimum. 
Changing the interface names is probably not an option.

Any help would be appreciated.

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to