10.角色(Role)
# 01.角色(roles)
# 1.1 什么场景下会用roles?
- 假如我们现在有3个被管理主机,第一个要配置成httpd,第二个要配置成php服务器,第三个要配置成MySQL服务器。
- 只能,第一个play用到第一个主机上,用来构建httpd,第二个play用到第二个主机上,用来构建php,第三个play用到第三个主机上,用来构建MySQL
- 这些个play定义在playbook中比较麻烦,将来也不利于模块化调用,不利于多次调用
- 比如说后来又加进来一个主机,这个第4个主机既是httpd服务器,又是php服务器,我们只能写第4个play,上面写上安装httpd和php。
- 这样playbook中的代码就重复了。
为了避免代码重复,roles能够实现代码重复被调用。
# 1.2 roles目录结构
site.yml
webservers.yml
fooservers.yml
hosts
roles/
common/ # 用于存放公共资源的地方,比如几个模块都需要使用的 变量等
tasks/ # tasks - 包含角色要执行的主要任务列表
files/ # files - 角色部署时用到的文件
templates/ # templates - 角色部署时用到的模板
handlers/ # handlers - 包含角色使用的处理程序
vars/ # vars - 角色其他的变量
defaults/ # defaults - 角色默认的变量
meta/ # meta - 角色定义的一些元数据
webservers/
files/
templates/
tasks/
handlers/
vars/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
上次更新: 2024/3/13 15:35:10