关于公司自动化部署的设想

2019-07-03 11:40:37 +08:00
 avalon8
小弟公司这几天在做 devOps,让我负责自动部署这块,小弟也看了很多资料,提出了一个设想:

1、开发人员 Merge 代码后 GitLab 触发 jenkins
2、jenkins 根据每个应用设置对应的 job,根据每个 module 下的 dockefile 将应用打成 docker 镜像并 push 到 nexus 镜像仓库。
3、使用 rancher 从 docker 仓库拉取镜像并部署。

小弟有几个疑问:
1、上述流程是否可以实现
2、GitLab 触发 jenkins 持续集成的时候需不需要先执行 maven 命令打包在打 docker 镜像
3、rancher 能否设置镜像仓库上传了新的镜像后自动拉取 docker 镜像。
4、关于 docker 镜像的构建能否这样:
( 1 )先构建好每个 module 的 tomcat 镜像 放到私有仓库
( 2 )每次 jenkins 构建先从仓库拉取对应 tomca 镜像,再把 war 包打进去然后再 build 一次镜像
( 3 )推送到私有仓库
7909 次点击
所在节点    DevOps
27 条回复
wangxiaoaer
2019-07-03 15:26:59 +08:00
@avalon8 #13 怎么推? jenkins 在本地,如何把构建好的包推到外网服务器?
thonatos
2019-07-03 16:46:53 +08:00
基于 Jenkins & Docker 的 workflow 应用比较多,基础设施用自建 Rancher 或者云服务商提供的容器服务区别不会很大,早年实现过测试过多套方案,有兴趣可以看看我专栏里的几篇文章( https://zhuanlan.zhihu.com/p/24296218 )。

k8s 生态日趋完善,多研究研究,蛮有意思,比如可以考虑一下 Knative。
anubu
2019-07-03 16:48:01 +08:00
制品推送没什么问题的,有各种各样的制品仓库,jenkins 也有各种插件支持,最原始的 ftp、ssh 都可以实现,我们的制品是 docker 镜像,所以就简单的 docker push。
部署更新我们也是在 jenkins 中完成的,根据不同的场景,显式的去执行一个部署操作,而不是推送制品后等待触发部署。可用的工具也很多,Windows 目标可以使用 powershell 远程操作,Linux 目标 SSH 脚本也不错,docker 主机或 k8s 集群都有远程 API 可以调用。
AlfredYoung
2019-07-03 17:04:06 +08:00
gitlab 自带就可以实现了
iehp
2019-07-03 17:34:15 +08:00
可以去掉 jenkins,直接 gitlab 的 gitlab-runner 都可以搞定了。
avalon8
2019-07-04 10:40:05 +08:00
@thonatos 谢谢
dafengchui
2019-07-23 04:42:17 +08:00
@iehp #25
@avalon8 #26 qii404,me/2018/06/21/gitlab-runner.html 这个基本就可以了

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

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

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

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

© 2021 V2EX