linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理

linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理

ID:9377526

大小:86.00 KB

页数:13页

时间:2018-04-29

linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理_第1页
linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理_第2页
linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理_第3页
linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理_第4页
linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理_第5页
资源描述:

《linux 系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux系统批量管理工具介绍,如何实现对一万台服务器的同时批量管理?做Linux系统管理以来,由于维护过比较大的网络,例如在飞信做支持的时候,面对上千台的服务器,有时候可能要对每台机子打一个补丁,或者是修改一个文件,如果只有10台服务器,那一一修改也就罢了,但是如果让你一台一台的登录1000台服务器只是为了去改一个文件,那一定痛苦死,并且效率低下,没有任何技术含量,如果一直做这种工作,那被称为IT民工也不能怪别人了,因为我一直想找一个可以批量管理的工具,后来发现了两种方式可以实现:1.通过SSH密钥认证,这样登录到远程机器上后就不需要输入密码了,这样就可以通过脚本去批量登录到远程服务器

2、并且修改你想要文件或操作等,但是这有一个缺点,就是这个在管理端的私钥你一定要保存好,万一管理服务器系统重装或其它原因导致私钥丢失,那你就没办法登录远程机器了。还有,如果需要管理的机器更改了IP,那你还得重新把公钥COPY到那台机子上,这样管理起来可能不是那么灵活。2.通过expect工具进行批量管理,expect工具很强大,可以实现交互式管理,比如如果你想改密码,输入passwd命令后,系统会提示你输入NewPassword:,如果使用普通脚本的话,那你是没办法进行交互式的。但是expect就可以做到检测系统的返回值并且根据返回的提示来自动交互,如下例:#!/usr/bin/expect

3、-fsetipaddress[lindex$argv0]#设置命令行参数setpasswd[lindex$argv1]#参数1为passwordsetipaddress[lindex$argv0]#参数0为IP地址settimeout1000spawnsshroot@$ipaddressexpect{"yes/no"{send"yesr";exp_continue}"Password:"{send"$passwdr"}#自动输入密码}expect"hknp"send"/etc/init.d/heartbeatstopr"#停止一个程序expect"hknp"send"exitr"

4、#退出系统expecteofexit以上脚本通过命令:expectha-switch.exp192.168.193.133‘123DDFD’执行,其中123DDFD就是133这台机子的root密码,如果你的一百台机子都是一样的密码,你就可以写个简单的批量脚本来登录所有的机子并停止一个程序,如下:#!/bin/bashforiin$(seq100200);doIP="192.168.193.$i"expectha-switch.exp$IP'123DDFD'done这样此脚本就会调用ha-switch.exp脚本并登录到192.168.193.100-200的机器上分别执行"/etc/in

5、it.d/heartbeatstop命令了。很强大吧,但使通过我使用的经验,我觉得expect有个缺点就是有慢,因为它是一台一台的去登录然后执行命令,因为有的时候由于DNS解析或什么原因,通过SSH登录到一台机子时可能需要等待30s才能登录进去,假如1000台机子的话那就需要50分钟才能完成在所有机器上的操作,对于要求在1分钟内实现数千台机器执行相同操作的需要来讲这显然达不到要求。以上两种方法各有利弊,我个人建议在50-100台的小网络中可以考虑使用SSH认证或expect的方法。但是想像一下,如果我有一万台机器,分别处于全国各地不同的网络中,要求我在1分钟内更改所有机器的root密码,

6、显然以上两种方法均是做不到的,当然有这样大型网络的公司中国也并不多见,但是从技术的角度上来讲这还是有一定挑战性的,由于在网上一直找不到这样的工具,我就自己索性写了一个,经过多天的努力,终于将这个批量管理工具写完了,此工具是用的Python写的,基于socketserver的模式,即需要在所有的需要管理的服务器上启动一个客户端(可能好多朋友不太喜欢这种还需要装客户端的东东),客户端会开启一个端口,你的管理服务器就是通过此端口与被管理端通信,然后对被管理端进行操作,你可以远程修改密码,查看系统信息,内存情况等操作,操作结果会在你的管理端实现显示出来(这也是我比较喜欢的地方,就跟在本地操作命令

7、一样)。并且还可以向远程服务器批量COPY文件,下面我就把这个工具在使用过程中的一些截图列出来:bjnppb01:~/scripts/python_scripts/Remote_management_tool#pythonserver.py##执行管理端##############################################################################RMT(RemoteMan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。