大家好,本文将围绕python 运维开发都需要掌握哪些展开说明,python搭建自动化运维平台是一个很多人都想弄明白的事情,想搞清楚python开发运维系统需要先了解以下几个事情。
Source code download: 本文相关源码
本文基于《Python自动化运维 技术与最佳实践》第十三章内容“从零开始打造B/S自动化运维平台”。
参考链接为作者刘天斯个人博客:
平台简介:OMServer是本平台的名称python六瓣花的画法。OMServer实现了一个集中式的Linux集群管理基础平台,提供了模块扩展的支持,可以随意添加集群操作任务模块,服务器端模块支持前端HTML表单参数动态定制,可灵活实现日常运维远程操作、文件分发等任务;在安全方面,采用加密(RC4算法)指令传输、操作日志记录、分离Web Server与主控设备等。在用户体验方面,采用前端异步请求,模拟Linux终端效果接收返回串。任何人都可以根据自身的业务特点对OMServer平台进行扩展,比如与现有资产平台进行对接,或整合到现有的运维平台中。
系统架构设计:OMServer平台采用三层设计模式,第一层为Web交互层,采用了Django+prototype.js+MySQL实现,服务器端采用了Nginx+uwsgi构建高效的Web服务;第二层为分布式计算层,采用rpyc分布式计算框架实现,作为第一层与第三层的数据交互及实现主控端物理分离,提高整体安全性,同时具备第三层的多机服务的能力;第三层为集群主控端服务层,支持Saltstack、Ansible、Func等平台。架构图:
主机ip操作系统软件备注
web172.27.9.17Centos7.3.1611Python2.7.5、Django1.4.9、uwsgi2.0.4、mysql5.7.22、rpyc3.2.3、nginx1.12.2、setuptools0.6c11关闭防火墙和selinux
server172.27.9.23Centos7.3.1611Python2.7.5、rpyc3.2.3、setuptools39.1.0、ansible2.3.1.0-1关闭防火墙和selinux
agent01172.27.9.19Centos7.3.1611/被控主机
agent02172.27.9.22Centos7.3.1611/被控主机
Web端搭建
安装包准备:[root@web ~]# mkdir /home/apps
将apps.zip上传至/home/apps并解压
1.nginx部署[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 install mysql-community-server