我有大概200台windows server 的服务器,升级的时候需要把每台机器上的一个文件替换掉,现在想写一个脚本,用于自动化替换文件,现在起步时遇到些麻烦,请问怎样写脚本能自动登录到每台机器上?
(我有一台管理机器,可以telnet每台机器的3900端口,我用net use \\ip无法登录其他机器)
net use是映射盘的,用psexec可以执行程序,psexec可以从微软网站下载。
http://blog.csdn.net/yiyefangzhou24/article/details/28627577
①安装腾讯蓝鲸
②给所有的Windows主机安装agent
③可以写好脚本然后分发给全部的机器然后在执行脚本或者直接写脚本选择全部的机器执行,蓝鲸的作业平台与标准运维与很多功能的,建议你安装一个测试使用一下。
https://bk.tencent.com/
https://bk.tencent.com/s-mart/community/question/5612?type=answer
https://bk.tencent.com/s-mart/community/question
以下是我们公司和你类似问题的解决方案。
1、我们公司服务器大概有200多台
这种是比较典型的XY问题,即虽然表面是问要怎么解决X,但本质是为了解决Y,而解决Y实际不局限于X这种方式。针对该题,它的X问题是,这个脚本怎么写,可以更好批量连接和下发执行指令到这200台win机器上;Y问题是,怎样更加简洁,高效地对比如这200台win机器进行变更管理。
首先,针对具体的X问题,如果脚本使用的是原生dos,处理这种比较复杂的情况,dos不是很好控制,因为不好处理连接到目标机器后(如telnet连接),怎样进行下一步原本需要交互的操作;如果是python,它可以处理相对比较复杂的逻辑,但首先是需要确保请求端和响应端都安装有python执行环境,而win系统本身是不内置python执行环境的(linux有内置),其次同样是怎么进一步处理原本需要交互的操作的问题,比如文件自动替换方式,是直接在定义在脚本里然后输出进行内容覆盖,还是从外部拉取文件到本地再进行本地文件替换,比如不同win机器自身系统环境差异,导致执行出错要怎么发现和定位问题,再比如如果下发脚本指令有误,导致目标机器出现文件误删等情况造成衍生故障,这都是通过单向脚本很难控制到的情况,所以像这种比较大的机器规模(还要区分是测试还是生产环境),通过单向脚本做一些比较复杂的变更操作,并不是一个很好的选择(可能主要因为运维owner更擅长写脚本);
针对背后的Y问题,其实完全可以用更加妥善安全的方式来操作,像这种大规模服务器维护,特别是生产环境,在企业里面更多是使用自研或商业的devops平台,比如用CMDB进行IT资产管理,用监控系统进行服务状态检测与告警,用发布系统进行服务部署与后台变更等等,本质上就是先在管理机器上安装个代理服务,然后代理服务会自动搜集机器的状态信息,上报到运维管理端进行管理决策,同时管理端的变更指令,也能通过代理服务下发到已接入的机器并执行,就是该运维体系建立起来后,所有的管理操作就变成在管理端上的可能简单几步操作即可。
像上述这样的运维管理体系,如果要靠自研并不是一件容易的事,而如果是购买商业产品又要考虑成本和适配的问题,此时一个发展迅速,包含社区版和企业版,且沉淀了互联网大厂多年运维经验的腾讯蓝鲸paas平台,就是个相对不错的选择,蓝鲸提供了从CMDB到监控的一体化解决方案,开箱即用,社区生态活跃,对于运维管理能力比较薄弱,或者想进一步打造智能化运维管理的团队来讲,都值得了解试试看。
至此,以供参考。