请教运维大佬: jenkins 部署 jar 包到应用服务器的问题

2020-11-09 23:04:52 +08:00
 asanelder
想通过 jenkins 部署 jar 包到应用服务器,网上查了一下,要使用 publish over ssh
但如果是多台应用服务器的话,每一台都要配置一个 ssh 凭证,而且每次建立 jenkins job 都要手动选择凭证。

有没有什么其它的方法来避免以上重复性的劳动?

求大佬指点一二
2227 次点击
所在节点    程序员
7 条回复
calmzhu
2020-11-09 23:28:59 +08:00
1. 用 ssh key 免密码
2. 机器特别多就用 saltstack/ansible 之类配置管理工具。jenkins-->制品库-->jenkins 调用配置管理 api-->配置管理工具执行部署
3. jenkinspipline lib.封装一下库。在所有 job 调用,甚至可以所有 job 用同一个 jenkinsfile 。

4. 以上 123 看心情随意组合。
xabc
2020-11-10 08:41:59 +08:00
第一步 需要建设通道系统
必然 salt ansible 这步自动完成,新机器默认打通,这是一切批量运维的前提
ltttx
2020-11-10 08:56:13 +08:00
一般情况下有一个类似跳板机系统,这个系统可以 ssh 登录到所有的节点上,salt 和 ansible 原理类似。同理,把 pub key 配置到 jenkins 后,使用 credentials id 即可了。

不过,这种还依赖于 ssh copy 的方式部署实在有点落后,可以尝试尝试 k8s 之类。
wupher
2020-11-10 09:06:41 +08:00
使用 ssh 隧道把 jar 传输至跳板机固定目录。

使用 rsync 在多个部署节点间同步 jar 。

通过 ssh 命令开关 Tomcat / Docker 容器服务。

以上步骤可以通过 asible / Jenkins 封装成自助服务,这样开发人员就可以自助部署、更新。
huangmingyou
2020-11-10 13:10:11 +08:00
做成发行版的包格式,用私有包仓库发布
asanelder
2020-11-10 16:38:31 +08:00
@calmzhu #1
@xabc #2
@ltttx #3
@wupher #4

感谢提供思路,小团队,之前没有这方面经验,俺在大厂干时不需要考虑这些问题。。。

看来又有的学了
asanelder
2020-11-10 16:42:09 +08:00
@calmzhu #1
@xabc #2
@ltttx #3
@wupher #4

主要是之前在大厂从申请机器到 CI/CD,什么 pipeline,jenkins,ssh 之类的都不用操心,项目直接写个 deploy 文件,部署时直接选择机器就 OK 了

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

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

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

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

© 2021 V2EX