已归录
每个角色,以特定的层级目录结构进行组织。
roles目录结构示例:
playbook.yml
roles/
<project>/ 项目名称,例如 httpd, nginx, mysql 等
tasks/ 定义 task,由 main.yml 去包含其它 task 文件。
files/ 存放 task 引用的静态文件,如 copy 或 script 模块等调用的文件
vars/ 定义变量,由 main.yml 去包含其它变量文件,这些变量优先级高,在剧本中使用时一般不会被改变
default/ 里面的 main.yml 包含了 role 变量的默认值,可以被覆盖,这些变量优化级低,可能在剧本中改变或者自定义
templates/ 模版文件所在目录
handlers/ 由 main.yml 去包含其它 handler 文件
meta/ 该目录下的 main.yml 含义了有关角色的信息,包括 author, license, platforms, and optional role dependencies.
tests/ This directory can contain an inventory and test.yml playbook that can be used to test the role
这些目录我们不用记忆,也不用手动创建,可以使用如下命令来初始化一个角色:
# ansible-galaxy init httpd
这样,在 httpd/ 下面就会出现 tasks, vars, templates 等目录。