1、利用角色简化playbook
ansible角色具有下列优点:
1.角色可以把内容分组,容易复用
2.可以用角色定义系统基本信息:web服务器、数据库服务器等
3.角色可以使大型项目易管理
4.角色可以由不同人并行开发
ansible角色会把不同功能的playbook分开,一个标准的角色含有下列子目录:
defaults:其中的main.yml包含角色变量的默认值 #在所有变量中优先级最低
files:包含角色任务引用的静态文件
handlers:主要定义处理程序
meta:角色相关信息,如作者、许可证等
tasks:定义任务
templates:任务引用的jinja2模板
tests:可以包含清单和test.yml的playbook,用于测试
vars:定义角色的变量
在playbook中使用ansible角色
---
- hosts: www.example.com
roles:
- role1
- role2
var1: var1
var2: var2 #为role2定义了两个变量,任何defaults和vars中的变量都会被覆盖
控制执行顺序
有时需要在角色之前或之后执行一些任务:
关键字:
之前:pre_tasks
之后:post_tasks
2、利用系统角色重用内容
安装系统角色
安装好的角色位于:
其中的内容(查看网络角色)
时间同步角色示例
查看系统中有哪些角色可以使用
创建目录保存变量
查看帮助
时区设置的example
清单和配置文件
修改主playbook
创建针对主机组的变量目录
新建时间yml文件并写入
检测和运行
3、创建角色
角色创建流程:
分三个步骤
1.创建角色目录结构
2.定义角色内容
3.在playbook中使用角色
创建角色框架
创建并初始化
配置tasks的play:安装、启动和配置虚拟主机
编写处理程序
编写html文件
配置模板
编写使用roles的playbook
这里使用的主机清单是系统默认的