本人编写的批量运维,开源,免费项目 《卡死你 3000 》就是类似的东西。
https://gitee.com/chuanjiao10/kasini3000/1 这是世界上最强的脚本引擎,没有之一。ansible,zabbix 也不行。
2 楼主的需求说的不清不楚,建议楼主画图。
3.1 目前我理解是:
1 从主控机,到被控机( proxy,或叫网关,或叫堡垒机)。运行 vpn 拨号程序。
2 通过网关,下发命令。
主控机----》被控机----》 vpn 内网子机。
3.2 严格来讲《卡死你 3000 》,ansible,zabbix,都是一层主从架构,都不适合楼主这种需求。
3.3 《卡死你 3000 》本身是 powershell 脚本,只有它才能胜任你的需求。这基于 powershell 的超牛 x 特性。
简单来说,powershell 下发命令,基于大花括号{},而不是单双引号。由于大花括号内,可以无限套大花,这让 powershell,可以穿透 n 层系统,发送命令。
3.4 伪代码如下:
cdip.ps1 192.168.1.1
krun.ps1 -powershell 代码块 { 拨号 vpn; ssh ip "子命令" ;vpn 断线 }
#krun.ps1 -powershell 代码块 { 拨号 vpn; new-pssession xxx ; invoke-command -scriptblock { #2 级子命令 ; new-pssession xxx ; invoke-command -scriptblock { #3 级子命令 } } ;vpn 断线 }
可以看到,一旦用了 ssh,就相当于打断了继续递归子命令。而一旦被控子机安装了 powershell,就可以继续无穷递归。