免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷
打印 上一主题 下一主题

[其他] 讨论:如何同步上百/千台服务器的某一个配置文件?(获奖名单已公布-2012-9-6) [复制链接]

论坛徽章:
0
1 [报告]
发表于 2012-07-06 13:20 |显示全部楼层
python脚本,开启多进程,然后python利用ssh协议登陆到目标机器来执行指令。如果配置文件不大的话,可以直接在ssh登陆之后
用 echo "123" > 1.conf写入到配置文件
我曾尝试过,写python脚本,修改一千台服务器的snmp.conf文件,并重启snmp,一分钟搞定

论坛徽章:
0
2 [报告]
发表于 2012-07-09 16:13 |显示全部楼层
回复 62# Gray1982


    python 脚本

关键如下:
import multiprocessing

results = []
procPool = multiprocessing.Pool(100)
r =procPool.map_async(changeDeviceInfo,updateList,callback=results.extend)
r.wait()

changeDeviceInfo 函数负责登陆目标机器,然后修改snmp配置文件,然后在启动snmpd

论坛徽章:
0
3 [报告]
发表于 2012-07-09 18:32 |显示全部楼层
回复 67# Gray1982


    多线程也挺好,我用的是python,python多线程,不能真正利用多核cpu.
    我尝试最快的一次,开次几百个进程,几千台服务器,大概20秒搞定。
   

论坛徽章:
0
4 [报告]
发表于 2012-07-10 13:48 |显示全部楼层
busyant 发表于 2012-07-10 11:56
个人的理解,欢迎探讨指正。

首先,上千台server规模已经很大了,个人觉得一个管理员能support的服务器上 ...



1:太过依赖管理员技术水平,不利于知识的传递。shell script很牛的人,可能不懂perl。perl很牛的人可能不懂python,python很牛的人可能从来没用过expect。有人可能会开玩笑说这样子公司就不敢开你了,但是,如果你是升迁呢?找个和你一样牛的人真的很难的,你会发现工作交接真的很头大

   CFEngine 语法也很麻烦,你要研究的深入,才能灵活控制,比如更新失败之类的,还需要有检查之类的,一点也不简单

2 维护工作千变万化,脚本随时可能做修改,调试成本高,出错的风险也大。一次错一千台,看老板怎么骂死你!

   CFEngine  不同的需求,执行的命令也是不一样的,这个出错的风险,你用什么也避免不了,批量更新的时候,不管你使用cf也好,脚本也好,肯定都要先测试一下。

3 随着时间的推移,脚本会越来越多,越来越长,工作交接的问题又来了。最后你可能自己都记不清test_run.sh 是用来干嘛的了
   cf保留很多配置文件不都是一样的么?
。。。。。
就不一一反驳了,
工具这个东西,自己写的脚本好控制,灵活,用cf的话,出了问题,还要深入研究,不如自己来写。非常灵活,满足你各种需求.

论坛徽章:
0
5 [报告]
发表于 2012-07-10 18:31 |显示全部楼层
回复 80# busyant


发的帖子少,是因为别的问题太复杂,正好这个问题,前一段时间遇到过一次。
本来打算cf,搞配置人员的也一直用cf,但是用cf的话,太慢(前提是我不会用cf,不知道怎么提升效率)
因为我的这个需求在修改snmp时候,监控的机器中存取的snmp信息也要同步修改,并且修改完之后,所用时间不能大于一分钟。
否则在两个监控周期范围内会出现n多的报警。
只好写脚本来实现了。







   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP