美文网首页Ansible
Ansible 小手册系列 二十三(动态和静态包含)

Ansible 小手册系列 二十三(动态和静态包含)

作者: lework | 来源:发表于2018-01-25 15:35 被阅读167次

Ansible有两种可重用内容的操作模式:动态和静态。
在Ansible 2.0阶段使用static来设置操作模式,Ansible 2.4则引入了include和import的概念。

如果您使用import*包含Task(import_playbookimport_tasks等),它将是静态的。
如果您使用include*包含Task(include_tasksinclude_role等),它将是动态的。

使用include包含Task(用于task文件和Playbook级包括)仍然可用,但现在被认为已被弃用。

静态和动态之间的差异


Ansible预处理Playbook解析期间的所有静态导入,而动态包含是在运行期间遇到该任务时处理的。

当涉及Ansible task选项,如tags和when:

对于静态导入,父任务选项将被复制到import中包含的所有子任务。
对于动态包含,任务选项仅在评估时应用于动态任务,不会被复制到子任务。

优缺点


使用include*语句的主要优点是循环。当循环与include*一起使用时,包含的任务或角色将为循环中的每个项目执行一次。

import*语句相比,使用include*有一些限制:

  • 仅存在于动态包含内的标签不会显示在-list-tags输出中。
  • 仅存在于动态包含内的任务不会显示在-list-tasks输出中。
  • 您不能使用notify来触发来自动态包含内部的处理程序名称。
  • 您不能使用--start-at-task开始执行动态包含内的任务。

与动态相比,使用import*也可能有一些限制:

  • 如上所述,循环不能用于导入。
  • 当使用目标文件或角色名称的变量时,不能使用来自库存源(主机/组变量等)的变量。

总而言之,没有使用with的包含,就使用import,使用了with,那就用include。

相关文章

  • Ansible 小手册系列 二十三(动态和静态包含)

    Ansible有两种可重用内容的操作模式:动态和静态。在Ansible 2.0阶段使用static来设置操作模式,...

  • 如何在Ansible中使用静态和动态库存(4)

    在Ansible系列的第4部分中,我们将说明如何使用静态和动态清单来定义Ansible中的主机组。 在Ansibl...

  • JSP学习

    JSP的静态包含和动态包含区别 静态包含语句:<%@ include file="路径" %> 动态包含语句:

  • 包含指令

    静态包含: 语法: 动态包含: 与之前的静态包含不同,动态包含语句可以自动区分被包含的页面是静态的还是动态的。如果...

  • jsp:静态包含和动态包含

    【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来...

  • iOS framework 简单笔记

    1. framework动态库可以包含静态库和bundle资源文件 2. framework静态库不能包含动态库 ...

  • 27.静态包含和动态包含

    静态包含: 动态包含: 从结果上,二者是一样的,都是包含,实质的区别是什么(包含时机不同). 静态包含: 在被翻译...

  • 静态包含和动态包含的区别

    静态包含:即所包含的页面是父页面的子做为父页面的一部份来调用, 会共享父页面的变量 <%@ include fil...

  • iOS创建.framework文件

    iOS的库分为 .a 纯静态库只能包含代码 .dylib 动态库 .framework 包含动态库和静态库,可...

  • Ansible 小手册系列 十(包含和角色)

    包含 使用include模块来包含foo文件 include 还允许传递变量 动态包含 循环引用3次 还可以使用动...

网友评论

    本文标题:Ansible 小手册系列 二十三(动态和静态包含)

    本文链接:https://www.haomeiwen.com/subject/ccpvaxtx.html