欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

比Ansible更优秀的Linux SSH批量管理服务器 执行命令上传下载自动化运维工具

shiping1 的头像
在这里先简单介绍一下我的这个程序与Ansible的对比:
我认为我的程序比Ansible的更简介,使用更简单,尤其是配置方面!且,Ansible有的功能, 我的这个程序一样有,我这个程序有的, Ansible不一定有!这个软件和Ansible一样是python开发, 所以跟Ansible的模式一样, 但是我这个使用更简洁!


安装说明:需要安装paramiko  pycrypto  gcc python-devel ,这些程序您可以自行到官网下载安装。我的程序在
下载AutoSSH   

大家可以先试用下,里面有Password是test
 

您可以大致的看下功能表,即可了解本软件的功能
功能表:
1名称功能解释本软件AutoSSH是否支持Ansible是否支持
2批量分发命令在您的本地输入一条命令,程序将会自动把这些命令发送给远程多个服务器执行支持支持
3批量上传文件在您的本地执行获取远程服务器的文件到本地,原理跟SFTP一样,但是这里是多个服务器同时执行SFTP支持支持
4批量下载文件(正则匹配)在您的本地执行上传远程服务器的文件到远程服务器,原理跟SFTP一样,但是这里是同时为多个服务器执行SFTP,并且支持正则表达式的匹配,比如,您想下载服务器上Tomcat在5月~8月的日志到本地查看: tomcat/logs2015-0[5-8].*.log支持支持
5多线程为多个服务器同时执行,这样能减少执行的时间,加快执行效率,尤其是在服务器较多的情况下支持支持
6自定义输出格式为了更人性化的显示执行结果, 您可以自行编写一个脚本对结果内容进行重新格式化输出,只为了方便您的查看支持不支持
7格式化日志入库程序执行的命令和结果,都将写入日志文件中,加入您在每天早上要执行巡检CPU MEM  IO  DISK 的信息,比如命令:df -h|grep '/' 得到结果 96% ,那么这些结果都将会格式化的写入日志中,同事也省去了您整理输出信息的时间。提高工作效率支持不支持
8命令结果返回状态判断每个命令执行是否成功,成功了多少, 用时多少,都会显示支持支持
9su root权限假如您的服务器只能以普通账户登录,而您平时又是用普通用户登录后su  - root执行命令,这里也支持。支持不支持
10结果统计执行的命令条数,成功数,用时等。支持不支持
11自助区分每个服务器的返回结果,都以特定格式区分开来,方便查看支持不支持
12交互界面可以在程序里面进行批量发送命令,就像是Linux的shell终端一样支持不支持
13后台运行    以命令的方式运行,比如您把命令写入一个脚本中,然后用crond每天早上为您自动为多个服务器巡检 .Auto_SSH_Manager_Stand_V71.0.py  <<EOF \n free -m支持支持
14模块化接口每个命令功能,都是一样以模块执行,所以跟Ansible是一样的原理,但是我认为比Ansibel更人性化支持支持
15二次开发有API接口, 如果您想要针对您的工作进行进一步的开发,那么也是可以的支持支持
16本地脚本在远程服务器运行(远程服务器没有脚本)您在本地编写一个脚本,或者是程序,或者是可执行文件,在远程服务器上事先不需要存在该脚本,而您可以直接在远程服务器上运行,犹如在普通的Shell终端下,先上传一个程序文件,然后在远程服务器上执行,而我们这里的区别是,无需您手动上传即可执行支持支持
17自动化巡检比如您可以在crontd中编写一条命令, 定时为您的多个服务器进行巡检操作,巡检的结果,将会格式化的写入本地日志,提支持不支持
18不同文件上传到不同服务器上比如您部署Tomcat  Weblogic集群的时候,有可能每一个Tomcat节点的配置文件都不同,那么可以采用此模式,进行上传配置文件开发中不支持
19部署模式         比如您时常部署Tomcat程序 Weblogic程序等,部署的服务器需要部署完成一台才能进行下一台的操作。很多企业都是这样支持不支持
20密码方式登录密码登陆,与Shell一样支持支持
21密钥方式登录PublicKey登陆,与Shell一样支持支持




目前已经更新版本到  Auto_SSH_Manager_Stand_V81.0 版
该程序不需要任何的插件,不需要安装客户端和服务器端,利用的是SSH协议运行。
如果需要, 可以试用一个星期! QQ 741345015

 

AutoSSH使用手册

一、介绍

本软件我(张其川 Cheung Kei-Chuen)使用Python语言开发,为了实现批量的自动化运维工作而开发,与Ansible一样属于同种开发语言,当然这个由我自己开发,是我根据工作中的实际使用情况而设计,在使用感知上我认为比Ansible更为人性化,更贴近运维人员的使用需求。

 


 

 

 

 

 

 



该程序主要实现批量的管理服务器,跟本地登陆到远程服务器执行的效果一样的,只是这个的速度快很多,而且也方便管理员的双手。
这个程序绝对适合运维人员使用!可以大大的减少运维时间, 提高运维效率。有需要的可以联系。
请看以下运行结果:

1 启动程序,在本地分发一个查看您每个服务器上Java版本信息的命令,显示的效果如下:
    命令:sh version.sh


2 比如现在要巡检各个服务器的磁盘, CPU,内存的事情情况,比如在这个程序里面输入检查磁盘使用百分比的情况:
命令:df -h|awk '$NF=="/"{print $(NF-1)}'
日志显示结果:

10.101.10.47|||datacenter|||20150520134430|||N|||df -h|awk '$NF=="/"{print $(NF-1)}'|||NULL|||12%
10.101.10.46|||datacenter|||20150520134430|||N|||df -h|awk '$NF=="/"{print $(NF-1)}'|||NULL|||30%
10.101.10.44|||datacenter|||20150520134430|||N|||df -h|awk '$NF=="/"{print $(NF-1)}'|||NULL|||36%
10.101.10.45|||datacenter|||20150520134430|||N|||df -h|awk '$NF=="/"{print $(NF-1)}'|||NULL|||62%



通过这个程序,只需要在本地输入一个命令, 然后结果一是会返回到界面中,可以查看, 二还会把结果写入日志里面, 而且是格式化的写入,这样,甚至可以让服务器每天自动运行,然后把得到的日志数据,直接写入Mysql或者是Oracle数据库里面。怎么样,够霸道吧?Ansible做不到吧? ,而且,每一个命令的结果,状态,都有日志记录.

3 看看我们的上传下载文件:
    场景:比如说我们要批量的部署Tomcat程序,Weblogic程序, Ningx程序, 需要批量的把程序文件上传到服务器上,总不能一个个的上传吧?虽然是FlushFTP也可以,但是也只能是一个个服务器的上传吧?我的这个程序实现的是: 多个服务器+多个文件  全部一起上传。这样大大的方便了管理员的手啊!
4 批量下载文件:
   场景:比如某天,您的游戏出了问题,但是您的游戏服务器有上百台,领导要您拿下这些日志到本地来分析,这个时候您怎么办?总不能一个个的拿下来吧?不要着急,看下我的程序:它批量的把多个服务器上的多个文件 同事Get到本地来!


5 看看程序的配置文件的配置情况吧,超简单,比Ansible的方便多了!



6 本地脚本在远程服务器上运行,注意:不需要远程服务器上有这个脚本,只需要您的本地服务器上有即可,支持的脚本类型、二进制程序命令 ,这点比Ansible更胜一筹

    用法:
            1 、在配置文件中开启:
                    LocalScript=Y
            2 、执行程序,进入命令行界面:
                    CMD>>>>/path/shell.sh

            如图:
                        看下本地脚本类容:
                        
                        看下运行结果:
                        
    注意::只需要在以上命令界面中输入您的本地脚本路径即可,注意:只能输入脚本路径地址,不要有其他字符。

     

7 使用部署模式部署启动Tomcat

 

 

 

假如在规定时间内,没有扫描到指定的字符信息Server  startup ,那么程序会跳出是否继续的选择。当然在这里,还可以指定启动ApacheWeblogic等等的程序。。不仅仅是Tocmat

 

 


 

以上是我自己编写的程序,如果您在工作中遇到了需要自动化解决的, 而我目前的程序如果还满足不了您的需求, 那么您可以跟我沟通,我将竭尽所能,为您服务。

QQ  741345015

 


我诚意推荐您使用本软件进行自动化运维或者部署,因为Ansible比puppet更好,而我的AutoSSH比Ansible更优秀!!




本软件由:张其川 Cheung Kei-Chuen 全程自主开发,属于中国人的又一个运维利器!


来自  
http://blog.chinaunix.net/uid-29295703-id-4663051.html
普通分类: