我们在使用playbook编写任务时,如果一个httpd需要重复安装的话,我们就需要在playbook中重新写一份儿yml。而role可以将tasks,template等分开定义。将任务,模板存放在单独的目录中。可以将多个规则调用在一起,实现完成复杂场景的实现
role存放规则
每个角色都有自己的相对应的目录结构进行组织。
分步示例
以nginx为例,实现ansible主机提供nginx反代功能,后端两个nginx服务器分别提供静态资源和动态资源的访问
1)定义主机清单
[root@nginx ~]# cat /etc/ansible/hosts
[local_nginx]
11.2.3.25
[http_server]
11.2.3.63
[php_server]
11.2.2.228
2)在/etc/ansible/roles下创建nginx文件夹,并创建tasks,template,var等目录
[root@nginx ansible]# tree
.
├── ansible.cfg
├── hosts
├── nginx_roles.yaml
└── roles
└── nginx
├── default
├── files
│ ├── index.html
│ └── index.php
├── handlers