ansible之roles
假如你希望在多个 play 或者多个 playbook 中重用同一个 task 列表,你可以使用 include files 做到这一点。 当我们希望为系统定义一个角色时,使用 include 去包含 task 列表是一种很好用的方法。
比如安装nginx 一个main.yaml可以include下面几个
tasks:
- include: tasks/copy.yaml
- include: tasks/install.yaml
- include: tasks/start.yaml
Roles
一个项目的结构如下:
site.yml
webservers.yml
fooservers.yml
roles/
common/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
webservers/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
Templates 存放模板文件,j2文件
Tasks 存放要执行的tasks yaml文件 必须有main.yaml
Handlers 存放handlers yaml文件 必须有main.yaml
Vars 变量目录, 必须有main.yaml
使用方法 ansible-playbook -i /etc/ansible/update_hosts sites.yaml –extra-vars “vars=”
指定inventory文件 指定自输入变量,可以没有
ansible之roles
http://www.jcwit.com/article/219/