赶鸭子上架. 不懂运维.
代码托管在 github.
要使用 aliyun, 在 slb 后面部署多个 ecs, 只有 slb 有公网地址.
如何给后面的 ecs 更新代码呢?
Thanks in advance! :]
1
timothyye 2016-10-17 09:05:34 +08:00 via Android
你们是用的金融云吗?
|
2
pepesii 2016-10-17 09:06:06 +08:00
可以试试用 Fabric
|
3
cocochan 2016-10-17 09:08:37 +08:00
VPN 进内网...
|
4
huigeer 2016-10-17 09:09:55 +08:00 via Android
把公网机器当成发布机,内网 rsync 同步
|
5
kankana OP @pepesii 在公司内网内, 部署到内部的测试服务器, 用的就是 fabric.
问题是, 阿里云 slb 后面的 ecs 没有公网 ip, 不知道怎么更新代码上去. 想问下是不是有 devops 的方法, 做代码部署的. |
6
kankana OP |
7
kankana OP 刚 google 下, 国外的是说, 创建包含新代码的镜像, 再创建相同数目的 ecs, 最后替换掉旧的 ecs
|
8
shoaly 2016-10-17 09:18:32 +08:00 1
开多一个 ecs 开外网端口. 然后 slb 所有的 ecs 能跟新的 ecs 互通的.
这样你 push 代码到新 ecs 上, 新 ecs 负责 代码更新到 各个 slb.all_ecs |
10
odirus 2016-10-17 09:25:50 +08:00
如果的代码是常驻内存这种,完全可以在一台具有公网 IP 的机器上搭建一个 samba ,然后其他机器共享某个目录,里面用于存放打包好的文件。
其他服务器全部加载这个包文件执行。。。 但如果不是常驻内存的话,还是通过 rsync 同步吧,毕竟每次执行都要加载代码。 |
11
shoaly 2016-10-17 09:26:16 +08:00
刚 google 下, 国外的是说, 创建包含新代码的镜像, 再创建相同数目的 ecs, 最后替换掉旧的 ecs..
属于比如你的项目已经不怎么频繁更新了, 横向延伸用的, 比如说游戏开新服... |
12
incompatible 2016-10-17 09:36:20 +08:00 via iPhone 1
买一台有公网 ip 的 ecs (如果你的其他 ecs 是经典网络私网实例就买经典网络带公网 ip 的 ecs ;如果你的其他 ecs 是 vpc 网络的实例那么就买同一个 vpc 下的实例+一个弹性公网 ip )做为跳板机,做发布、维护等操作时先 ssh 到跳板机上,再从跳板机 ssh 到你的其他 ecs 上。
|
13
goodryb 2016-10-17 10:41:15 +08:00
12 楼正解,楼主应该找个兼职运维
|
14
tomczhen 2016-10-17 11:46:53 +08:00
不管什么方案都需要一个跳板机,剩下的就看实际情况选择方案了。
需求简单的话可以用 git/svn hook 实现,复杂的话, saltstack 之类的工具都已经很成熟了,挑个自己喜欢的就行。 |
15
jwnlive 2016-10-17 11:58:33 +08:00
阿里云建议是把 ecs 搞成无状态的,挂载统一的存储来用,不过还是感觉用 rsync 来同步比较方便,做成代码发布机的模式
|
16
tczzjin 2016-10-17 12:11:08 +08:00
可以试试 lsync,配置和使用比 rsync 简单得多...自动同步所有代码
|
17
Aliencn 2016-10-17 12:21:45 +08:00
除了上面说的几个方案,补充两点
1.如果是这种专有网络的 ecs ,可以搭配阿里云前段时间刚退出的一个 nas 服务,一个存储可挂载多个 esc 主机。 2.每个机器弄个脚本实时检测有没有代码更新 |
18
realpg 2016-10-17 13:29:50 +08:00 1
你的 ECS 连按流量的管理用外网都不开?
太吝啬了吧 |
20
littlehz 2016-10-17 15:38:39 +08:00 1
开一台机器,同时有外网和内容,用于管理,配置 ssh 目标机内网 IP `ProxyCommand ssh -q -W %h:%p 管理机公网 IP 或别名`,用证书登录。
在这台管理机上同步推送代码。 这台管理机平时也可以放一些 cron 、队列 daemon 进程等任务,省的浪费资源。 |
21
avenger 2019-12-10 12:52:40 +08:00 via iPhone
直接用阿里云的 nas 把业务代码部署在共享 nas 上,这样更新一台,所有服务器都是最新代码了,是否可行?不知道有没有 io 瓶颈
|