博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动化运维工具ansible 角色Roles介绍(三)
阅读量:6654 次
发布时间:2019-06-25

本文共 1619 字,大约阅读时间需要 5 分钟。

一.角色(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

你可能感兴趣的文章
国外一个牛人写好的VIM配置方案spf13
查看>>
Python 单向循环链表
查看>>
Redis 客户端安装与远程连接图解
查看>>
BZOJ3328: PYXFIB(单位根反演?)
查看>>
使用EasyUI的treegrid犯的个低级错误
查看>>
jmeter 登录并发 (此文章有待修改)
查看>>
spring事务测试2,为了解决spring事务测试1
查看>>
扩展卡特兰数
查看>>
ajax对象。同步与异步及ajax发送请求
查看>>
event.stopPropagation 阻止触发父元素的绑定事件
查看>>
[开源] KJFramework.Message 智能二进制消息框架
查看>>
appcan本地数据库,uexDataBaseMgr插件
查看>>
HTML学习笔记一基本标签
查看>>
Mac、nvm、node/npm
查看>>
【转载】随机函数rand()
查看>>
二分查找 BestCoder Round #36 ($) Gunner
查看>>
PowerShell【Do While、Do Until篇】
查看>>
试验添加RAC(ORA10G)节点
查看>>
面试题编程题04-python sort和sorted用法与区别
查看>>
UWP是什么东西
查看>>