关于远程执行(ansible 等工具)相关问题

13 天前
 McreeWu

背景: 服务器较多,3w 台左右(且 IP 等都是浮动的,在 2-5w 台),可能会存在同时更新或执行命令的情况,现在是使用 ansible 来管理,但是因为机器数量过多导致经常性同步延迟过大,或者有部分服务器无法联通动问题卡在某个任务上,且运维平台跑 ansible 内存会挤爆( 16G ),不过这个不是大问题,如果方案可行易用,配置不是问题,可以直接上顶配服务器供给运维平台使用。

故: 现在想结合运维平台调研一个新的远程执行方案,需要能批量跑任务,或直接跑 bash 得到输出值,服务器上可以部署 agent 。

目前在看 saltstack ,问题点是在于我们服务器大多走公网进行维护,网络链路分布全球,没办法保证连接质量。

想知道各位公司都是用什么方案,或者什么工具呢?

2747 次点击
所在节点    程序员
44 条回复
hetal
13 天前
其实就是差一个 CI/CD 的流程呗~
McreeWu
13 天前
@hetal #1 目前已有 ansible 可供使用,但是速度太慢了。
mightybruce
13 天前
这种情况估计你们需要自己研发了,ansible 模块通过 ssh 协议(或者 Kerberos 、LDAP )推送到被管节点执行,执行完之后自动删除, 几万台服务器肯定是满足不了的, 每个服务器装 agent 是需要的
McreeWu
13 天前
@mightybruce #3 是的,而且 ansible 跑完一个任务卡在某台机器上就跑不下去了,我们也不知道是哪个机器,经常需要等待好久时间。。
cqu1980
13 天前
只有自己研发,做任务池,卡的报警,再手工查看执行
vacuitym
13 天前
github 上有个开源的运维平台叫 salt ,不知道是不是你们要的
NevadaLi
13 天前
checkmk 试试?
dododada
13 天前
我记得前司当年是请腾讯来做的,大概 4W 台机器,后来慢慢的就自研了,CI/CI 是基于禅道做的二开,其他的不太了解,反正你这个 3W 台,比较复杂,你这个可能还有异地多活的网络,要找个运维架构师咨询一下,没经验的话比较难搞
McreeWu
13 天前
@NevadaLi #7 这个好像倾向于监控一体化
hetal
13 天前
@McreeWu CI/CD 有很多方案,比较简单的就是容器化服务,根据版本的 tag,branch 等发版的 hooks ,然后自动部署,这个需要一些研发投入进行改造,不过是一劳永逸,上万台服务器了,这个是有必要的
McreeWu
13 天前
@hetal #10 没,不是 CI/CD 方案,我们的业务也不适用 k8s ,不然早就上了😂
rushpu
13 天前
你可以看下这个,基于 ansible ,https://github.com/ansible/awx/blob/devel/docs/clustering.md
dbak
13 天前
可以看看 salt-syndic 分布式架构
povsister
13 天前
声明式+agent ,自研吧。做好任务管理下发,执行和回报交给 agent 。
超大规模的想走 worker+shell 真的是坐大牢。

当然,我觉得最简单的方式。k8s ,damonset 跑 agent ,或者直接上 job ,日志也能统一回收。以 pod 状态/job 状态作为任务执行的结果标识。
luojiyin87
13 天前
GeekGao
13 天前
可以试试使用 mitogen 插件加速 SSH 连接 https://mitogen.networkgenomics.com/ansible_detailed.html
ic3z
13 天前
tywtyw2002
13 天前
ansible 分组呗 一个组 1k-2k 台 分批次执行,多 node 并行执行也行。

或者换 salt ,带 agent 的,不过 2w+ 不分组,效率也不行。

规模大了,执行和监控就要分开了,执行完了扔数据库,然后控制到数据库里面去查。
ExplodingFKL
12 天前
3w 的数量已经不太适合 ansible / ssh 了 ... 执行太太太太太慢了,如果执行的任务中不存在多机器联动的话可以直接自研 agent 之类的拉取任务 , 同时结合 p2p 分发降低请求负载 ...
guanzhangzhang
12 天前
换 salt 这种带 agent 的,不然纯本地 ansible run 的机器调度会很慢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX