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

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

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

2bf8a25a3cd995d8fbf8a45481514a42.png

正好,还真有这么一个自动化运维工具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:

7f8445eff55e1a3d742cace657f225e5.png

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

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

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

a3399e2f20dc82f8155d5f0f26fa31c3.png

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

5e1f6fac55c0f36894a730e8063a1f04.png

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

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

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

c40a3ea74d1bdf92f5876a4943b1ce98.png
8e7fb98227cf0868f8a5fbd8fd751238.png

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

6544a95e3e39097fa9f8d74929a7ba23.png

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

10c8c1644a2c470362bbe51ab29be22b.png

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

79b4f12c5bdf67d1d94b29ed5347ded4.png

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

67a8e58adba913f74c949e23bdfc0e67.png

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

67318231b69f6ab02d9279938efd3807.png

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

0998d5e7635aee4165288f24f206bdec.png

小结:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值