自动化运维工具ansible 角色Roles介绍(三)

一.角色(roles)介绍
自动化运维工具ansible 角色Roles介绍(三)
角色定制:roles
对于以上所有的方式有个弊端就是无法实现复用假设在同时部署Web、db、ha 时或不同服务器组合不同的应用就需要写多个yml文件。很难实现灵活的调用。

roles 用于层次性、结构化地组织playbook。roles 能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用

roles只需要在playbook中使用include指令即可。简单来讲,roles就是通过分别将变量(vars)、文件(file)、任务(tasks)、模块

(modules)及处理器(handlers)放置于单独的目录中,并可以便捷地include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。

roles可以写在默认的/etc/ansible/下,也可以是任意地方

创建roles
自动化运维工具ansible 角色Roles介绍(三)

roles编排
自动化运维工具ansible 角色Roles介绍(三)

示例:
自动化运维工具ansible 角色Roles介绍(三)

二.目录结构
自动化运维工具ansible 角色Roles介绍(三)

目录编排
自动化运维工具ansible 角色Roles介绍(三)

目录结构
自动化运维工具ansible 角色Roles介绍(三)

各目录作用
自动化运维工具ansible 角色Roles介绍(三)

三.实例练习

1.创建nginx_roles
查看目录结构:
自动化运维工具ansible 角色Roles介绍(三)

主剧本
自动化运维工具ansible 角色Roles介绍(三)

nginx下的任务tasks
自动化运维工具ansible 角色Roles介绍(三)

nginx下的模板templates
自动化运维工具ansible 角色Roles介绍(三)

测试正常
[root@server1 ansible]# ansible-playbook -C nginx_role.yml

执行nginx_roles剧本调用角色
自动化运维工具ansible 角色Roles介绍(三)

检测正常
自动化运维工具ansible 角色Roles介绍(三)

2.创建httpd_roles角色
简单练习,2个任务,一个复制文件,一个创建apache用户
目录结构
自动化运维工具ansible 角色Roles介绍(三)

剧本内容
自动化运维工具ansible 角色Roles介绍(三)

还有一个未修改的httpd配置文件
自动化运维工具ansible 角色Roles介绍(三)

执行主角色文件httpd_role
自动化运维工具ansible 角色Roles介绍(三)

检测正常
自动化运维工具ansible 角色Roles介绍(三)

3.同时执行nginx和httpd角色,模拟同一个机子执行两种角色
前面的两个例子不变,再写一个执行剧本some_role.yml
里面的roles写上2个,一个是nginx,一个是httpd即可
自动化运维工具ansible 角色Roles介绍(三)

4.跨项目执行任务
如下,执行nginx角色任务的时候还想执行httpd下的copyfile.yml任务
自动化运维工具ansible 角色Roles介绍(三)

只需修改nginx里面的任务顺序里面加上一条即可
自动化运维工具ansible 角色Roles介绍(三)

注:这个httpd里的copyfile.yml任务里的原路径要改成绝对路径,因为nginx这个角色里面没有这个httpd.conf文件,到时候会报错
自动化运维工具ansible 角色Roles介绍(三)

执行正常
[root@server1 ansible]# ansible-playbook -C nginx_role.yml

4.角色剧本中的标签
模拟举例:
复制一个app角色
自动化运维工具ansible 角色Roles介绍(三)

修改主剧本文件,后面加上标签
自动化运维工具ansible 角色Roles介绍(三)

执行,-t指定标签,只会运行web标签的内容,不会运行app标签的内容
自动化运维工具ansible 角色Roles介绍(三)

5.在roles添加条件when
自动化运维工具ansible 角色Roles介绍(三)
[root@server1 ansible]# ansible-playbook some_role.yml

四.综合项目练习
创建apache服务,要求变量调用修改默认端口和用户,拷贝vhosts文件,修改配置文件重启服务

1.在上面的项目基础上新建app roles
自动化运维工具ansible 角色Roles介绍(三)

2.app项目目录结构
自动化运维工具ansible 角色Roles介绍(三)

3.项目中的文件内容
files中的vhosts.conf没有任何改动,只是拷贝文件
自动化运维工具ansible 角色Roles介绍(三)

模板文件是httpd.conf的配置文件,其中修改端口为cpu个数的十倍,用户调用变量文件,使用app
自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)
变量文件
自动化运维工具ansible 角色Roles介绍(三)

app主剧本角色文件
自动化运维工具ansible 角色Roles介绍(三)
4.执行测试
[root@server1 ansible]# ansible-playbook app_role.yml

自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)

五.memcached角色练习
1.练习需求
正常安装,memcached的默认占用内存的大小为64M,练习需要根据不同主机的内存大小,设置为主机内存的1/4大小
自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)

2.用setup模块查看两台远程主机的内存
自动化运维工具ansible 角色Roles介绍(三)

3.修改templates文件
自动化运维工具ansible 角色Roles介绍(三)
自动化运维工具ansible 角色Roles介绍(三)
4.目录结构
自动化运维工具ansible 角色Roles介绍(三)

5.文件内容
自动化运维工具ansible 角色Roles介绍(三)
主剧本memcached_role.yml文件:
自动化运维工具ansible 角色Roles介绍(三)

6.执行测试
自动化运维工具ansible 角色Roles介绍(三)

自动化运维工具ansible 角色Roles介绍(三)

转载于:https://blog.51cto.com/anfishr/2311376

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值