本文基于《Python自动化运维  技术与最佳实践》第十三章内容“从零开始打造B/S自动化运维平台”。

参考链接为作者刘天斯个人博客:

https://blog.liuts.com/post/245/

https://blog.liuts.com/post/246/

https://github.com/yorkoliu/pyauto


平台简介:OMServer是本平台的名称。OMServer实现了一个集中式的Linux集群管理基础平台,提供了模块扩展的支持,可以随意添加集群操作任务模块,服务器端模块支持前端HTML表单参数动态定制,可灵活实现日常运维远程操作、文件分发等任务;在安全方面,采用加密(RC4算法)指令传输、操作日志记录、分离Web Server与主控设备等。在用户体验方面,采用前端异步请求,模拟Linux终端效果接收返回串。任何人都可以根据自身的业务特点对OMServer平台进行扩展,比如与现有资产平台进行对接,或整合到现有的运维平台中。


系统架构设计:OMServer平台采用三层设计模式,第一层为Web交互层,采用了Django+prototype.js+MySQL实现,服务器端采用了Nginx+uwsgi构建高效的Web服务;第二层为分布式计算层,采用rpyc分布式计算框架实现,作为第一层与第三层的数据交互及实现主控端物理分离,提高整体安全性,同时具备第三层的多机服务的能力;第三层为集群主控端服务层,支持Saltstack、Ansible、Func等平台。架构图:

图片.png


主机
ip
操作系统
软件
备注
web
172.27.9.17
Centos7.3.1611 Python2.7.5、Django1.4.9、uwsgi2.0.4、mysql5.7.22、rpyc3.2.3、nginx1.12.2、setuptools0.6c11 关闭防火墙和selinux
server 172.27.9.23
Centos7.3.1611 Python2.7.5、rpyc3.2.3、setuptools39.1.0、ansible2.3.1.0-1 关闭防火墙和selinux
agent01
172.27.9.19
Centos7.3.1611 /
被控主机
agent02
172.27.9.22
Centos7.3.1611 /
被控主机


Web端搭建

安装包准备:

链接:https://pan.baidu.com/s/1Y6nYv3L9udEGsIsOma2Vzg 密码:048j

[root@web ~]# mkdir /home/apps

将apps.zip上传至/home/apps并解压


1.nginx部署

参考文档:https://blog.51cto.com/3241766/2094315

[root@web ~]# yum -y install gcc-c++
[root@web ~]# yum  -y install  pcre pcre-devel
[root@web ~]# yum -y install zlib zlib-devel
[root@web ~]# yum -y install wget
[root@web ~]# wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
[root@web ~]# tar -zxvf nginx-1.12.2.tar.gz
[root@web ~]# groupadd nginx
[root@web ~]# useradd -g nginx -d /home/nginx nginx
[root@web ~]# passwd nginx
[root@web ~]# cd nginx-1.12.2
[root@web nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx
[root@web nginx-1.12.2]# make && make install
[root@web nginx-1.12.2]# cd /usr/local/nginx/sbin/
[root@web sbin]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx


2.mysql数据库安装

[root@web ~]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
[root@web ~]# yum -y inst