阿里云, 如何给 slb 后面的多个 ecs 更新代码?

2016-10-17 08:57:01 +08:00
 kankana

赶鸭子上架. 不懂运维.

代码托管在 github.

要使用 aliyun, 在 slb 后面部署多个 ecs, 只有 slb 有公网地址.

如何给后面的 ecs 更新代码呢?

Thanks in advance! :]

4047 次点击
所在节点    程序员
21 条回复
timothyye
2016-10-17 09:05:34 +08:00
你们是用的金融云吗?
pepesii
2016-10-17 09:06:06 +08:00
可以试试用 Fabric
cocochan
2016-10-17 09:08:37 +08:00
VPN 进内网...
huigeer
2016-10-17 09:09:55 +08:00
把公网机器当成发布机,内网 rsync 同步
kankana
2016-10-17 09:10:27 +08:00
@pepesii 在公司内网内, 部署到内部的测试服务器, 用的就是 fabric.

问题是, 阿里云 slb 后面的 ecs 没有公网 ip, 不知道怎么更新代码上去.

想问下是不是有 devops 的方法, 做代码部署的.
kankana
2016-10-17 09:12:52 +08:00
@huigeer
倒是一个思路. 让 slb 后面的 ecs 去同步更新的代码.
但是, 我是希望找到一种主动, 由我这边发起的代码更新.
好烦啊~
kankana
2016-10-17 09:16:15 +08:00
刚 google 下, 国外的是说, 创建包含新代码的镜像, 再创建相同数目的 ecs, 最后替换掉旧的 ecs
shoaly
2016-10-17 09:18:32 +08:00
开多一个 ecs 开外网端口. 然后 slb 所有的 ecs 能跟新的 ecs 互通的.
这样你 push 代码到新 ecs 上, 新 ecs 负责 代码更新到 各个 slb.all_ecs
kankana
2016-10-17 09:20:20 +08:00
@shoaly bingo! 多谢
odirus
2016-10-17 09:25:50 +08:00
如果的代码是常驻内存这种,完全可以在一台具有公网 IP 的机器上搭建一个 samba ,然后其他机器共享某个目录,里面用于存放打包好的文件。

其他服务器全部加载这个包文件执行。。。

但如果不是常驻内存的话,还是通过 rsync 同步吧,毕竟每次执行都要加载代码。
shoaly
2016-10-17 09:26:16 +08:00
刚 google 下, 国外的是说, 创建包含新代码的镜像, 再创建相同数目的 ecs, 最后替换掉旧的 ecs..
属于比如你的项目已经不怎么频繁更新了, 横向延伸用的, 比如说游戏开新服...
incompatible
2016-10-17 09:36:20 +08:00
买一台有公网 ip 的 ecs (如果你的其他 ecs 是经典网络私网实例就买经典网络带公网 ip 的 ecs ;如果你的其他 ecs 是 vpc 网络的实例那么就买同一个 vpc 下的实例+一个弹性公网 ip )做为跳板机,做发布、维护等操作时先 ssh 到跳板机上,再从跳板机 ssh 到你的其他 ecs 上。
goodryb
2016-10-17 10:41:15 +08:00
12 楼正解,楼主应该找个兼职运维
tomczhen
2016-10-17 11:46:53 +08:00
不管什么方案都需要一个跳板机,剩下的就看实际情况选择方案了。
需求简单的话可以用 git/svn hook 实现,复杂的话, saltstack 之类的工具都已经很成熟了,挑个自己喜欢的就行。
jwnlive
2016-10-17 11:58:33 +08:00
阿里云建议是把 ecs 搞成无状态的,挂载统一的存储来用,不过还是感觉用 rsync 来同步比较方便,做成代码发布机的模式
tczzjin
2016-10-17 12:11:08 +08:00
可以试试 lsync,配置和使用比 rsync 简单得多...自动同步所有代码
Aliencn
2016-10-17 12:21:45 +08:00
除了上面说的几个方案,补充两点
1.如果是这种专有网络的 ecs ,可以搭配阿里云前段时间刚退出的一个 nas 服务,一个存储可挂载多个 esc 主机。
2.每个机器弄个脚本实时检测有没有代码更新
realpg
2016-10-17 13:29:50 +08:00
你的 ECS 连按流量的管理用外网都不开?
太吝啬了吧
kankana
2016-10-17 14:08:13 +08:00
@realpg 哈哈, 你不说, 我还不知道有这个功能.....
littlehz
2016-10-17 15:38:39 +08:00
开一台机器,同时有外网和内容,用于管理,配置 ssh 目标机内网 IP `ProxyCommand ssh -q -W %h:%p 管理机公网 IP 或别名`,用证书登录。
在这台管理机上同步推送代码。
这台管理机平时也可以放一些 cron 、队列 daemon 进程等任务,省的浪费资源。

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

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

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

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

© 2021 V2EX