目录
roles
roles 介绍
ansible 自1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次结构自动装在边梁文杰、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单来讲,roles就是通过分别将变量、文件、任务、模块以及处理器放置于单独的目录中,并可以边界的include他们的一种机制。角色一般基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。
一个roles的案例如下所示:
site.yml
wevservers.yml
fooservers.yml
roles/
common/
files/
templates/
tasks/
handlers/
vars/
meta/
wevservers/
files/
templates/
tasks/
handlers/
vars/
meta/
而在playbook中,可以这样使用roles:
-hosts: wevservers
roles:
- common
- wevservers
也可以向roles传递参数,例如:
- hosts: webservers
roles:
- common
- { role: foo_app_instance, dir: '/opt/a', port: 5000 }
- { role: foo_app_instance, dir: '/opt/b', port: 5001 }