Ansible 角色
Ansible 角色
角色为文件、任务、模板、变量和模块的完全独立或相互依赖的集合提供了一个框架。
角色是将剧本分成多个文件的主要机制。这简化了复杂剧本的编写,并使它们更易于重复使用。打破剧本允许您将剧本分解为可重用的组件。
每个角色仅限于特定的功能或所需的输出,所有必要的步骤都可以在同一角色本身或在列为依赖项的其他角色中。
角色不是剧本。角色是可以在剧本中独立使用的小功能。角色没有针对角色将应用的主机的特定设置。
顶级剧本是将主机从清单文件连接到应应用于这些主机的角色的桥梁。
创建角色
角色的目录结构对于创建新角色至关重要,例如:
角色结构
角色在文件系统上具有结构化布局。您也可以更改角色的默认结构。
例如,让我们坚持角色的默认结构。每个角色本身就是一个目录树。所以角色名称是/roles 目录中的目录名称。
用法
ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...
选项
-h:(help) 它显示此帮助信息并退出。
-v:(详细)详细模式(-vvv 表示更多,-vvvv 启用连接调试)。
--version: 显示程序版本号并退出。
角色存储在单独的目录中并具有特定的目录结构
[root@ansible-server test2]# tree
.
`--role1
|--defaults
| `--main.yml
|--handlers
| `--main.yml
|--meta
| `--main.yml
|--README.md
|--tasks
| `--main.yml
|--tests
| |--inventory
| `--test.yml
`--vars
`--main.yml
说明
默认目录中的 YAML 文件包含要与剧本一起使用的默认变量列表。
处理程序的目录用于存储处理程序。
元目录应该包含有关作者和角色依赖项的信息。
tasks 目录是角色的主要 YAML 文件。
tests 目录包含一个示例 YAML 剧本文件和一个示例清单文件,主要用于在创建实际角色之前进行测试。
vars 目录包含 YAML 文件,角色使用的所有变量都将在其中定义。目录模板和目录文件应包含角色中的任务将使用的文件和模板。