我发现自己一直在角色和任务之间感到困惑。
我知道标签是一种标记单个项目的方法,但我很困惑如何使用它们。
假设我必须执行以下操作
Users
Create a user named "deploy"
Add ssh key for "deploy" user
Git
Install git
Clone some git repo
“用户”和“Git”会是我在顶级 YML 文件中的两个主要角色吗?每个子项(例如“安装 Git”)都是一项任务吗?我会用标签标记每个子任务吗?还是我用标签标记角色?
只是寻找 Ansible 层次结构的概述。
最佳答案
tl;博士一个任务是一个单一的声明(操作);角色是对任务进行分组的多种方式之一。
一个任务被执行并且有一个结果(ok、changed、failed)。
在大多数情况下,任务调用处理幂等性的 Action 模块,使任务成为编程的声明性单元。
但是,有些任务执行元操作、包含和包装其他命令。
角色隐藏了实现细节(类似于其他语言中的函数、过程、方法)并允许轻松重用代码。
Would "Users" and "Git" be my two main roles in the top level YML file?
在 Ansible 中没有单一的方式来组织事物。您可以使用不同的构造实现相同的结果:角色、包含、条件等。
如何使用 Ansible 取决于您(和您的组织)的目标:您可以创建 Ansible 剧本,以便它们阅读起来就像描述配置的完整、包含的线性文档;或者您可以创建具有依赖关系、抽象级别和模块化架构的复杂配置。
关于ansible - Ansible 中的角色和任务(和标签)有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42754594/