Ansible Roles 是一种用于层次化和结构化组织 Ansible Playbook 的机制。
Ansible Roles 是一种用于层次化和结构化组织 Ansible Playbook 的机制。它通过将变量、文件、任务、模板和处理器等放置在单独的目录中,简化了 Playbook 的管理和复用。Roles 自 Ansible 1.2 版本引入,极大地提高了代码的可维护性和可重用性。
目录结构
一个标准的 Ansible Role 目录结构包含以下几个主要目录:
-
tasks/: 包含定义任务列表的 main.yml 文件。
-
handlers/: 包含定义处理器的 main.yml 文件。
-
templates/: 存放 Jinja2 模板文件。
-
files/: 存放由 copy 或 script 模块调用的文件。
-
vars/: 包含定义变量的 main.yml 文件。
-
defaults/: 包含默认变量的 main.yml 文件。
-
meta/: 包含角色的元数据和依赖关系的 main.yml 文件。
使用示例
假设我