挖旧贴两年后回复:
@
pubby @
arbeitandy 当时是用的第二方案解决了问题,第三方案没试。远程server们是有做IP限制的,只限从跳板server ip登录。
实现的具体方式:
用Python写个通用的同步脚本,内部调用的就是@
pubby 列的那些端口映射ssh命令然后再rsync/scp命令完成目录、文件同步、命令执行,用pexpect模块完成需要密码时的交互。脚本在本地Mac(UNIX命令环境)上执行,不同服务器密码用对称加密的方式(然并卵骗骗自己觉得稍微安全点吧)存在$HOME目录的一个ini文件里。 实际上只有少部分的远程服务器还在用密码其余已是证书,连跳板机也自己改用了证书。
@
xdays Fabric当时没看到这功能,一开始尝试用的是perl的Rex,连接远程服务器前先跟跳板机建ssh proxy,跟你说的Fabric的gateway方案应该是一样的。后来觉得用得不爽就自己用Python实现了。
@
xofyarg 跳板机后面找一台机器作为开发机,这个听起来行得通但服务开发人员这么多,不能大家都用那个开发机进行开发吧(大家都登录到那台server,用vim写代码?),如果只是拿那个开发server作为分发前的测试和中转,那本地PC跟这台跳板机后的开发机server的同步问题就又绕回来了。
不用理会我,就是说一下后续而已:
@
xderam @
peterlu 线上机器的权限已回收,改文件的权限也没了,不用也不能做这种事了。安全和效率是要运维一开始就考虑好的,比如很久前其它部门有研发用SecureCRT脚本以方便登录跳转到指定服务器,密码都在里面,全体研发大家一起用,而这脚本还是运维帮写的。