Ansible 包含与导入的用法,角色的架构,系统角色的使用

1.包含和导入文件

1.1管理大型playbook

如果playbook很长或很复杂,我们可以将其分成较小的文件以便于管理。可采用模块化方式将多个playbook组合为一个主要playbook,或者将文件中的任务列表插入play。这样可以更轻松地在不同项目中重用play或任务序列。

1.2包含或导入文件

Ansible可以使用两种操作将内容带入playbook。可以包含内容,也可以导入内容。

包含内容是一个动态操作。在playbook运行期间,Ansible会在内容到达时处理所包含的内容。

导入内容是一个静态操作。在运行开始之前,Ansible在最初解析playbook时预处理导入的内容。

1.2导入playbook

import_playbook指令允许将包含play列表的外部文件导入playbook。换句话说,可以把一个或多个额外playbook导入到主playbook中。

由于导入的内容是一个完整的playbook,因此import_playbook功能只能在playbook的顶层使用,不能在play内使用。如果导入多个playbook,则将按顺序导入并运行它们。

导入两个额外playbook的主playbook的简单示例如下所示:

还可以使用导入的playbook在主playbook中交替play。

1.4导入和包含任务

可以将任务文件中的任务列表导入或包含在play中。任务文件是包含一个任务平面列表的文件:

1.4.1导入任务文件

可以使用import_tasks功能将任务文件静态导入playbook内的play中。导入任务文件时,在解析该playbook时将直接插入该文件中的任务。Playbook中的import_tasks的位置控制插入任务的位置以及运行多个导入的顺序。

导入任务文件时,在解析该playbook时将直接插入该文件中的任务。由于import_tasks在解析playbook时静态导入任务,因此对其工作方式有一些影响。

使用import_tasks功能时,导入时设置的when等条件语句将应用于导入的每个任务
无法将循环用于import_tasks功能
如果使用变量来指定要导入的文件的名称,则将无法使用主机或组清单变量
1.4.2包含任务文件
可以使用include_tasks功能将任务文件动态导入playbook内的play中。
 

2.1.4 查看系统中有哪些角色可以使用

2.1.5查看帮助

2.2检查ansible角色结构

Ansible角色由子目录和文件的标准化结构定义。顶级目录定义角色本身的名称。文件整理到子目录中,子目录按照各个文件在角色中的用途进行命名,如tasks和handlers。files和templates子目录中包含由其他YAML文件中的任务引用的文件。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月3日
下一篇 2021年7月3日

相关推荐