MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 数据库 / 正文

运维日记|使用ansible批量部署crontab定时删归档任务

2024-11-26 17:29 huorong 数据库 5 ℃ 0 评论

在某个下午,测试同事突然找过来说,之前测试服务器搭的几套oracle数据库忘记部署删除归档脚本了,要让小编都给部署一下。

?


数了数,有接近十套呢,一部部登陆上去,部署一个删归档脚本,然后再到crontab里面去,设置定时任务。简单是简单,但是在于假如需部署的机器有100套,那这种重复性劳动可就太花时间了。

正好,还真有这么一个自动化运维工具ansible


什么是ansible呢?


Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是基于python语言,由Paramiko和PyYAML两个关键模块构建。

集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力。


1.安装ansible


在一般的情况下,我们只需在 控制服务器安装 Ansible 即可。被控端需要安装与主控端同版本python2 (version 2.6 or later) 或者 Python 3 (version 3.5 or later),及ssh依赖包。我们这里使用yum来安装一下ansible:

2.编辑ansible的主机清单文件


这里的192.168.238.5[1:7]写法是一个可以偷懒的地方,万一有一组ip后缀是1到100,要真的写满100行,不仅不够优雅也显得麻烦不是。

下图为控制主机与被控主机简单示意图:

3.建立与被控制主机的互信关系

这样就可以实现免密码登录了。


4.使用ansible的ad-hoc命令行模式推送删归档脚本


我们这里直接将删归档内容作为文本写到目标环境下,并且使用{{sid}}的写法调用主机清单文件中的sid变量参数,再设置脚本的权限及用户:



执行完命令后,我们可以查看到目标环境的/tmp/del_arch.sh脚本内容如下:

5.使用ansible的cron模块来增加crontab定时任务


我们这里写法如下,设置在每天0点03分执行删归档脚本:


我们可以观察到目标库crontab:


6.我们可以使用ansible的剧本(playbook)来更优雅的执行任务


我们来执行这个yaml剧本,结果如下:


小结:


只要跑这么一个yaml文件,所有的主机就能按照剧本一步一步的往下执行,最终简单高效的实现我们的目标。

运维工作有太多的简单却又高度重复的工作。这些工作看似容易,但是一个人不停重复地做下去不仅让人耗时耗力还容易出错。适时恰当地使用一些自动化工具此时就能够明显地解放人力加快工作效率了。

Tags:归档oracle

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言