自动运维|ansible批量部署 – 作者:database

在某个下午,小编一个研究postgresDB的同事特洛伊·谢戳了戳小编的胳膊:

特洛伊·谢:那啥,我这想一次性搭5个新的pg测试环境,你能不能…

又轮到运维界的叶问-ansible出场了。

Ansible是一个自动化运维工具,其主要功能是帮忙运维实现IT工作的可自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率,常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等,有着丰富的内置模块以及更为丰富的用户分享的功能模块。

今天我们就用它来实现批量在rhel6上部署postgresDB11。以下为部署步骤以ansible实现的方法。

部署步骤

1、关闭NetworkManager

image.png

 这里调用了ansible的service模块。

2、关闭防火墙

image.png

需要注意的是,由于系统版本差异部分系统服务名称有所改变,例如防火墙在rhel6与7上是不同的,建议可以根据系统版本来判断服务名。

3、关闭selinux

image.png

这里调用了lineinfile模块,并且使用了’>’来缩进,增加可读性。

4、修改limits.conf文件

image.png

5、 /etc/hosts修改及主机名修改

image.png

这里的ip及主机名可以通过调用ansible自己的主机信息收集模块直接获取到。

6、将postgresdb11的rpm包传输至目标端指定位置

image.png

假如远端指定的路径不存在会自动创建

7、安装pg安装需要的rpm包

image.png

 这里安装完包之后会自动创建一个postgres用户,家目录为/var/lib/pgsql

8、修改/data目录权限

image.png

9、初始化postgres数据库,启动并设置开机自启动

image.png

将所有的步骤写在一个yaml剧本文件里面,执行该剧本:

image.png

出于篇幅有限,我们这里只执行一个远程服务器。这样新的一台pg数据库就装好啦。当然你可以在hosts主机清单文件里面配10台目标服务器,ansible默认会以5的并行度去执行批量部署。

我们这次只是简单的在rhel6上安装pg11,考虑到平台版本、pg版本不同,可以使用ansible的roles去根据版本迭代,这样的话playbook的可读性更好,也更易维护。当然根据自己的需求,可以添加其他的判断及tasks。

参考文献

https://docs.ansible.com/ansible/latest/

美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。

来源:freebuf.com 2020-06-24 11:27:02 by: database

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论