
如何基于Python构建可扩展的运维自动化平台. 我也希望与您交流并共同成长.
共享将通过具有功能,体系结构设计,模块定制,安全审核和C / S结构实现的平台进行.
多项优势: 默认安装和跨平台,良好的可读性和高开发效率,丰富的第三方库(开发框架,各种API,科学计算,GUI等),活跃的社区和许多开发人员.

腾讯在Python中的当前状态基于去年内部提交的组件语言的统计信息. 除2、3和4前端技术外,Python在高级编程语言中排名第三. 腾讯著名的“蓝鲸”运维PAAS平台用于系统运维,业务逻辑,运维平台,测试工具,数据挖掘等领域,是基于Python语言的.
OMServer集中式Linux群集管理(基础)平台(《 Python技术和最佳实践》一书的实际示例),具有业务群集管理,实时安全审核,功能模块定制,数据加密传输以及对以下内容的支持主流Python组件,易于使用且经验丰富,源代码托管地址为github.com/yorkoliu/pyauto,读者可以根据企业需求自定义修改和发布.
1. 平台截图:

2. 该平台使用的第三方库:
Django-使用MVC软件设计模式用Python编写的开源Web应用程序框架;
rpyc- RPC和分布式计算工具的Python实现. 支持同步和异步操作,回调等;
盐堆,可访问的功能-用于基本Python开发的自动化配置管理和过程控制组件;

Mysql-是一种非常流行的关系管理系统.
1. OMServer体系

每个人都不应该不熟悉这种体系结构. 三层结构也是当前的主流操作平台体系结构.
2. 架构说明
OMServer平台具有三层体系结构,即WEB交互层,分布式计算层和群集管理服务层.
1),第一层: WEB交互层,一种典型的B / S架构,一个供管理员操作的交互平台,也是OMServer的核心,并且基于Django;
2),第二层: 分布式计算层python运维管理平台,它提供与主机的连接通道,使用rpyc传输协议,协议操作过程: 前端模块参数->加密传输->任务执行->返回结果集->解密输出.
3),第三层: 集群管理服务层,集成了Python的主流远程操作组件(支持Saltstack,Anaible,Func),并管理受控端(业务服务器集群). IDC环境采用多站点多点管理方法,可以提高冗余度和执行效率. 主控制终端操作模块具有不同的Python文件,易于维护,可以灵活定制操作逻辑和水平扩展.
3. 平台架构优势
1)管理端的多机支持,可以根据不同的IDC进行划分;
2)高安全性,加密传输,专用通信规范(TCP)的定义;

3)支持多种管理客户端访问(WEB,桌面,移动);
4)调用Python组件的高级功能(Playbook,State);
5)强大的功能可扩展性和定制模块.
4. 架构操作流程

上图是一系列三个级别的交互过程,它们可以清楚地了解OMServer架构的操作流程,结束与APP Server的传统直接连接的操作,并更加标准化我们的操作事件,从而可以避免一些潜在的错误. 误操作.
5. 集成远程操作Python组件

两个步骤:
1. 预先配置主从之间的信任关系,通常是证书或SSH认证;
2. 通过OMServer主机封装的任务模块和API接口,可以实现自定义的任务传递和执行.
1. 任务模块定制的想法

1)任务模块-是一个任务事件,它的操作事件是细粒度的,例如重新加载配置,部署缓存服务,停止Nginx服务和其他原子操作;
2)添加模块的步骤:
-使用HTML表单元素定义任务模块的“输入参数”,可以输入,下拉,单个复选框等元素;
编写后台模块代码,执行部分由Saltstack或Ansible的Client_API实现;
-任务模块的核心代码,只能使用5行代码来实现Shell脚本的功能.
3)运行模块的步骤-选择任务模块和操作数->指定输入参数->运行->返回执行结果.
2. 当我们的平台已经能够自定义和扩展操作时,运维的核心工作将集中在以下几点:
1)要改善和升级平台功能python运维管理平台,您需要具备DevOps功能;
2)根据业务运作需要,完成任务功能模块的编写工作;
3)日常工作组合(标准的,面向过程的构造)和更好的原子操作融入到过程中.
4)系统和业务调优以及服务业务.
1. 安全审核技术架构

2. Agent报告的实现原理
实现原理非常简单. 通过修改Linux系统环境配置文件/ etc / profile,定义与历史事件相关的环境变量,捕获所有Linux登录用户会话,操作事件和指令通过OMAudit_agent.py中的HTTP GET CGI实时写入.
管理首页会定期刷新以获取最新的操作事件.
1. OManager桌面版的屏幕截图
2,OManager桌面版本架构
OManager的桌面版本基于Wxpython + XRC. 它具有两层结构,一个是桌面客户端,另一个是群集管理端. 它还与OMServer兼容. 在管理方面,通信仍使用rpyc协议,该协议在以下几点上与OMServer有所不同:

3. 后续优化
1)集成ansible或saltstack的高级功能,例如ansibleplaybook;
2)将多个任务模块打包成模板对,实现原子操作与运维变更过程的结合;
3)参考任务调度Celery,支持更大的并发;
4)任务队列支持暂停,中止和重新运行功能,以实现可控的操作.
5)提供对CMDB的访问,该功能更加通用.
本文来自
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-149170-1.html
十个台湾都收复下来啦
休言开战
小王子