博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python脚本实现集群检测和管理
阅读量:7020 次
发布时间:2019-06-28

本文共 1631 字,大约阅读时间需要 5 分钟。

 场景是这样的:一个生产机房,会有很多的测试机器和生产机器(也就是30台左右吧),由于管理较为混乱导致了哪台机器有人用、哪台机器没人用都不清楚,从而产生了一个想法--利用一台机器来管理所有的机器,记录设备责任人、设备使用状态等等信息....那么,为什么选择python,python足够简单并且拥有丰富的第三方库的支持。

最初的想法

  由于刚参加工作不久,对这些东西也都没有接触过,轮岗到某个部门需要做出点东西来(项目是什么还没情况,就要做出东西来,没办法硬着头皮想点子吧)。。。

  本想做一个简单点的自动化测试的工具,但这项目的测试方法和测试用例暂时不能使用这种通用的测试手段(输入和输出都确定不了),从而作罢...

  

  

  那么做点什么东西,经常发现同事们问208谁用的?201谁用的?那IP是我的!!!你是不是把我得网线给拔掉了?242那机器到底是哪台?

  突然间,春天来了,是不是可以做一个系统用来检测IP和记录设备的使用人,甚至可以按需要在某台设备上运行一个脚本或命令?把这个矮矬穷的想法和leader沟通过后,确认可以做,那么就开始吧!!!

设计思想

  该系统的大概思想:

  1.  要获得所有服务器的各种信息,需要在任意一台服务器上部署一个agent作为信息获取的节点,定时向管理服务器节点发送服务器信息数据。

  2.  server作为综合管理节点,接收并储存agent提交的信息。

  3.  为了方便使用,采用web页面的形式做展示。

  

开发工具选择

  1. 开发语言:python

    之所以选择python,简单,第三方库丰富,不用造轮子

  2. 数据库:mysql

    简单、易用

  3. webpy:web框架

    入门简单、部署方便

  4. bootstrap:前端框架

    不要关心太多前端问题

  5. paramiko:python库,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接

    通过SSH方式连接agent服务器:远程运行命令、传输文件

  6. scapy: python库,可用来发送、嗅探、解析和伪造网络数据包,这里用来扫描IP

  7. MySQLdb: 连接mysql

  8. shell 和 python脚本接口: 为其他人提供shell脚本的接口

经验分享

  1. 前端对我来说是新东西,从来没弄过,页面的动画效果,脚本运行时的过渡都是需要考虑的,开始考虑利用倒计时,但是这个时间是不可控的,后来采用ajax来处理这个问题

  2. agent要自动部署到每台机器,并可以通过server来控制刷新时间

  3. 建立一个可扩展的表是非常重要的,而且一些重要的信息需要写入磁盘,在数据库失效的情况下,可以从磁盘获取数据

  4. 数据库的连接,如果长时间没有操作的话会超时,要考虑到

  ... ...

  项目结构--webpy

    1. website.py为webpy的主程序,设置了url映射

    2. model.py为webpy的url映射类,处理请求和返回

    3. static中存放静态资源

    4. scripts用来存放处理的脚本,这里起的名字有些问题 

    

 

  连接数据库

    使用MyQSLdb连接mysql,在这里我没有使用webpy提供的数据库接口,而是自己封装了一套  

  ssh远程连接服务器  

    paramiko实现ssh连接、与数据传输、执行命令和脚本

 
View Code

  IP扫描

    使用scapy进行IP扫描

 
View Code

  批量添加ssh-key

 
View Code

本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/p/4034614.html,如需转载请自行联系原作者
你可能感兴趣的文章
什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?(转)
查看>>
LindAgile.SchedulingTask~设计一个不错的任务调度组件
查看>>
恶搞之手机垃圾信息发送器 手机短信骚扰器
查看>>
mysql replication之binlog-do-db、binlog-ignore-db
查看>>
Date类型和Long类型的相互转换
查看>>
XMPP协议
查看>>
CSS:给 input 中 type="text" 设置CSS样式
查看>>
Softmax函数
查看>>
hdu4462 Scaring the Birds
查看>>
设计中的道理_6
查看>>
MFC——AfxParseURL用法
查看>>
关于综合布线系统线缆挑选方法
查看>>
面向过程,面向对象,函数式对同一个问题的思考方式
查看>>
盘点:抵御网络攻击哪国强?世界20强国排名
查看>>
混合“白+黑”名单方法是如何帮助企业加强安全的?
查看>>
中国网速竟不到泰国一半、香港的1/4!名副其实"华囧"
查看>>
4G和5G不配物联网 不过死撑
查看>>
SAP宣布将投资22亿美元发展物联网业务
查看>>
他用10年前的攻击手法感染了17000多名开发者的电脑
查看>>
IBM秀出并行训练肌肉:256个GPU还能有95%的拓展效率,顺便刷新ImageNet-22K记录
查看>>