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/
作者
Carlos
发布于
2018年7月24日
许可协议