Hi all My ntp.cf has grown to nearly 800 lines now. Location-dependent setting are the biggest part of it, while a smaller part (files, processes, reports, and commands promises) is common for all locations. I'd like to reduce its size to something more manageable.
I was considering to write a module that, depending on hostname and location, would return a server list, a peer list, and a key list. Another approach could be have the common parts into ntp.cf, and location-specific settings pulled in dynamically. E.g., I'd have them in separate policy files[2]. But I already tried that, and all my attempts to split this policy have been frustrated by various problems (see thread [1] in the forum for a summary). Is the module approach OK? Or maybe there are other obvious approaches I am not able to see at the moment? For those who are wondering why the policy is so huge, you'll find a summary below[3]. Ciao -- bronto [1] https://cfengine.com/forum/read.php?3,23886 [2] ntp.cf is itself pulled into play dynamically (using Neil Watson's technique), and the "ntp" bundle is added to the bundlesequence. [3] For each location, I have: * a list of upstreams for each of the ntp servers in said location; since we usually have four servers per location, this totals to four lists; * a list of peers for each of the ntp servers; again, this totals to four lists; * a list containing the key used by a server to authenticate the packets it sends out; this means we have again four of such lists; * a list of servers to be used by all unicast clients in said location; * a list of authentication keys to be used by all multicast clients in said location; This means that, for each location, I have to define 14 lists. But that's not all. In fact, there is one more list, a big one, which defines the class is_server, which tells cfengine if the machine being configured is an NTP server or not. Think of about four servers per location; think of some ten locations, and now you got the idea of what kind of monster this policy file is. _______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine