Forum: Cfengine Help Subject: Re: evaluation of variables Author: mark Link to topic: https://cfengine.com/forum/read.php?3,18954,18969#msg-18969
Joke (short for Johan.*?), my claim is that to be scalable (see below), you should keep to "best practices". Your configuration example is not really a good idea because you run an unnecessary external shell command to pick up a list of files like "plugins" which is not a very secure strategy to begin with. So I have two claims: 1. I am advising against your entire approach, because it is inadvisable on 2 grounds: security, efficiency. 2. You are making only partially correct inferences about what you think is happening based on a little information, which is no basis for criticism. You use the term scalability, but you don't say what you mean by it. If you mean scalability with respect to number of machines, then this has no effect, since each machine executes independently. If you mean with respect to the number of bundles. then there is indeed a danger that shellcommands called to set variables in the common bundles can end up being executed more times in order to handle circular dependencies. That is a good reason not to do it. Solution: move the definition to a private bundle, or best of all, don't use this approach at all. In conclusion, while there are challenges to implementing execresult in a declarative framework (with possible dynamic circular dependency), this will not be a huge problem unless you make it so by doing something that is advised against in the manual. When ever someone says cfengine isn't scalable, I think of the users with 10,000 hosts who have no problems, and I think of the comparisons that have been done against Puppet (20-40x faster and 10x less memory). It makes these worries less urgent in my view. (The Groucho Marx story has a serious side: if it hurts, don't do it.) This is probably not the answer you want, but it's my best answer. _______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine