ssh连接批量服务器管理系统,不能SSH时服务器批量管理的实现

本文介绍了一种不依赖SSH且无需在远程服务器安装额外工具的批量管理方法。通过在服务器上部署Bash脚本,定期从管理机获取指令列表并执行,同时反馈执行结果。该方案包括在管理机上设置Web服务,服务器端脚本获取并执行指令,以及通过Web方式查看所有服务器的执行结果。此外,还提到了开发网页控制台以方便维护指令列表和服务器列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:张隐耕

通常谈到批量管理的时候,很多人的第一印象就是使用ssh,在一台管理机上借助ssh密钥认证实现免输密码登陆远程成百上千乃至成千上万的服务器,然后执行指令操作。不可否认这是很好的方法。不过,使用SSH的方法有个前提,那就是要求远程主机开放ssh登录。另外,还可以借助第三方开源工具gearman等,不过需要在服务器上安装gearman客户端。

那么有没有一种方法能够不依赖于SSH,也无须在服务器上安装其它第三方工具的情况下,实现服务器的批量管理呢?在经过一段时间的思考之后,想到一个简便且还算实用的方法,经过测试,这种方法可行,而且还具备一定的通用性。

大致的架构就是,在服务器上部署一个BASH脚本,定期从管理机上获取指令列表执行,并反馈执行结果。

具体描述如下:

1、准备一台管理机CtrlServer,安装web服务,保障每台服务器都能访问即可;

2、在每一台服务器RemoteServer上部署一个bash脚本,加入crontab;

脚本的主要功能就是获取指令、执行指令、反馈结果;主要步骤:

A、获取服务器列表

访问CtrlServer的web服务获取需要执行指令的服务器IP列表(serverlist,实现可选择的指定服务器执行指令)

B、获取待执行指令列表

访问CrtlServer的web服务获取需要执行的指令(cmdlist);

校验新旧cmdlist的MD5,和新cmdlist内指定的脚本过期参数选项,避免脚本重复执行;

C、将cmdlist转换成shell脚本(cmd.sh)

D、执行cmd.sh返回执行结果

执行Cmd.sh,并将执行结果POST给CtrlServer,存入DB。

E、查看执行结果

在CtrlServer上以WEB方式查看所有服务器执行结果。

最后,为了方便的维护变更指令列表文件和服务器列表文件,可以额外开发一个网页控制台用来管理这2个文件。

你是否有更好的方法呢?欢迎分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值