我发现自己很困惑roles and tasks每时每刻。
我知道标签是标记单个项目的一种方式,但我很困惑如何使用它们。
假设我必须执行以下操作
Users
Create a user named "deploy"
Add ssh key for "deploy" user
Git
Install git
Clone some git repo
“Users”和“Git”是我在顶级 YML 文件中的两个主要角色吗?每个子项(例如“安装 Git”)都是一个任务吗?我会用标签标记每个子任务吗?或者我应该用标签来标记角色吗?
只是寻找 Ansible 层次结构的概述。
tl;dr一个任务是一个单一的声明(操作);角色是对任务进行分组的多种方式之一。
-
Ansible 中的任务是一个基本工作单元,是其他语言中一行代码的对应部分。
任务被执行并产生结果(正常、更改、失败)。
在大多数情况下,任务调用负责幂等性的操作模块,使任务成为编程的声明性单元。
然而,有些任务执行元操作、包含和其他命令的包装。
-
Ansible 中的角色是许多抽象层之一,用于将一组任务(加上默认数据、模板、处理程序、文件)分组为更复杂的定义。
角色隐藏实现细节(类似于其他语言中的函数、过程、方法)并允许轻松重用代码。
“Users”和“Git”是我在顶级 YML 文件中的两个主要角色吗?
Ansible 中没有单一的组织方式。您可以使用不同的结构实现相同的结果:角色、包含、条件等。
如何使用 Ansible 取决于您(和您的组织)的目标:您可以创建 Ansible 剧本,以便它们读起来像描述配置的完整、包含、线性文档;或者您可以创建具有依赖关系、抽象级别和模块化架构的复杂配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)