ansible之利用角色简化 playbook(六)

1 ansible角色介绍

ansible 角色具有下列优点:
1.角色可以把内容分组,容易复用
2.可以用角色定义系统基本信息:web 服务器、数据库服务器等
3.角色可以使大型项目易管理
4.角色可以由不同人并行开发

ansible 角色会把不同功能的 playbook 分开,一个标准的角色含有下列子目录:

defaults其中的 main.yml 包含角色变量的默认值,在所有变量中优先级最低
files包含角色任务引用的静态文件
handlers主要定义处理程序
meta角色相关信息,如作者、许可证等
tasks定义任务
templates任务引用的 jinja2 模板
tests可以包含清单和 test.yml 的 playbook,用于测试
vars定义角色的变量

2 在 playbook 中使用 ansible 角色

2.1 如何定义角色

这个优先级最高,任何 defaults 和 vars 中的变量都会被覆盖
在这里插入图片描述

2.2 控制执行顺序

有时需要在角色之前或之后执行一些任务:
关键字:
之前:pre_tasks
之后:post_tasks

3 利用系统角色重用内容

3.1 安装系统角色

在这里插入图片描述

3.2 安装好的角色位于

在这里插入图片描述

3.2.1 时间同步角色示例

在这里插入图片描述

#查看系统中有哪些角色可以使用
在这里插入图片描述

#创建目录保存变量
在这里插入图片描述

#查看帮助
在这里插入图片描述

#时区设置的 example
在这里插入图片描述

#清单和配置文件
在这里插入图片描述

#修改主 playbook
vim configure_time.yml
在这里插入图片描述

#创建针对主机组的变量目录
[root@workstation roles]# mkdir -pv group_vars/{group1,group2}
#新建时间 yml 文件并写入
在这里插入图片描述
运行:
在这里插入图片描述
结果:
在这里插入图片描述

4 创建角色

4.1 角色创建流程:分三个步骤

1.创建角色目录结构
2.定义角色内容
3.在 playbook 中使用角色

4.2 创建角色框架

在这里插入图片描述

my_role #具体的角色项目名称,比如 nginx、tomcat、php(自由设置)
在这里插入图片描述

├── defaults       #用于为当前角色设定默认变量,此目录应当包含一个 main.yml 文件
│ └── main.yml     #main.yml,类似代码中的主函数,进行统一管理
├── files          #用来存放由 copy 模块或 script 模块等模块调用的文件
├── handlers       #用于定义此角色中触发条件时执行的动作,此目录应当包含一个
main.yml 文件
│ └── main.yml
├── meta           #用于定义此角色的特殊设定及其依赖关系,此目录应当包含一个
main.yml 文件
│ └── main.yml
├── README.md      #说明文件
├── tasks          #用于定义当前角色的任务列表,此目录应当包含一个 main.yml 文件
│ └── main.yml
├── templates      #用来存放 jinjia2 模板,template 模块会自动在此目录中寻找jinjia2 模板文件
├── tests          #用于存放测试 role 本身功能的 playbook 和主机定义文件,在开发测试阶段比较常用,此目录应当包含一个 main.yml 文件和自身资源设定 invetory
│ ├── inventory
│ └── test.yml
└── vars          #用于定义此角色用到的变量,此目录应当包含一个 main.yml 文件
── main.yml

5 实战

5.1 创建并初始化

在这里插入图片描述
可以删去不用的文件:
在这里插入图片描述

5.2 配置 tasks 的 play

‘安装、启动和配置虚拟主机’
在这里插入图片描述

在这里插入图片描述

5.3 编写处理程序

在这里插入图片描述

5.4 编写 html 文件

在这里插入图片描述

5.5 配置模板

在这里插入图片描述

5.6 编写使用 roles 的 playbook

在这里插入图片描述
在这里插入图片描述

‘这里使用的主机清单是系统默认的’
运行:
在这里插入图片描述
测试:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值