两者之间有什么区别
vars_files:指令
和
-include_vars 模块
何时不赞成使用上述任何一种方法?
答案 0 :(得分:7)
vars_files 和 include_vars 都被标记为稳定接口,因此它们都不被弃用。两者都有一些共同点,但解决了不同的目的。
vars_files:
vars_file 指令只能在定义用于指定变量文件的播放时使用。这些文件中的变量包含在剧本中。由于它是在播放开始时使用的,因此很可能暗示其他一些播放(在此播放之前)创建了这些vars文件,或者它们是在运行配置之前静态创建的;表示它们是该剧的配置变量。
include_vars:
vars_files 的一个目的是将一组文件中的vars包括在内,但是如果
这些是我能想到的一些情况,如果要使用以上任何情况,则需要 include_vars 。
答案 1 :(得分:4)
vars_files。当剧本到达任务时,将读取include_vars。您可能还对Variable precedence: Where should I put a variable?
感兴趣答案 2 :(得分:1)
一些更新的信息...
如弗拉基米尔(Vladimir)所述,
播放开始时vars_files被读取。当剧本到达任务时,将读取include_vars
与所有静态项目一样,在播放开始之前先读取vars_files。与include_vars不同,后者在剧本到达时会“包含”。
静态重用和动态重用之间的最大区别之一是如何处理其中的变量或任务。默认情况下,所有静态重用项均使用linear strategy处理,所有主机彼此保持同步。在下一个任务可以开始之前,每个任务都必须在所有主机上完成。被跳过的主机实际上要处理一个noop任务。
动态重用不会将performance strategy从线性更改,但是会更改处理任务的顺序。通过动态重用,整个任务组必须在单个主机上完成,然后由下一个主机处理。不幸的是,所有其他主机在等待时都扭曲了它们的“不睡”。
当您需要通过一系列具有已注册输出的任务“循环”主机某个主机,并在下一个主机启动之前对这些信息进行某些操作时,
当您需要在一组主机上收集信息或执行任务之前,导入语句非常有用。
这是一个非常好的表,可以比较所有不同的Include_ *和Import_ *函数。Comparing includes and imports: dynamic and static re-use
就像供参考,这是有关绩效策略以及如何提高绩效的更多信息的链接。 How can I improve performance for network playbooks?