目前通过 jenkins 来打包,然后将 jar 包传输到服务器上重启服务。
publish over ssh 插件是可以配置服务器。
但是机器很多的话就比较麻烦,一个应用可能几十台服务器,几个应用随便就超过百台了。
现在已进入配置节点的页面都要加载很久了。
求解有啥好的方案吗?或者插件什么的 我想到的一种是直接用 shell 脚本来传输包,不用插件。但是要将账号密码写到脚本里。
1
rbe 2019-07-24 17:00:33 +08:00
试试 Ansible 分发? Jenkins 有 Ansible 的插件
|
2
dreamusername 2019-07-24 17:04:20 +08:00
一般对于多服务器,最合理的解决方案不是用 Ansible 吗,这里是否可以使用 Ansible Playbook 来解决这个问题。
|
3
lshero 2019-07-24 17:06:39 +08:00
其实到最后都是 scp 加 ssh 密钥发布的 Ansible 写个 playbook 吧
|
4
DeadLion OP |
5
asilin 2019-07-24 18:00:42 +08:00
这实际上属于 CI/CD 中的 CD - 持续部署。
jenkisn 本身是为少量工程的 CI (持续集成)设计的,大量工程的 CI 以及 CD 用它并不合适。 根据业务特性,我们自己实现了一套 CD,并集成到了运维平台中。 |
6
NoKey 2019-07-24 18:04:19 +08:00
publish over ssh 那个插件好用是好用,但是如果服务器一多,页面就会很长
我们这里服务器不多,采用的是脚本 使用 Extended Choice Parameter 插件 几台服务器一组,在脚本里根据不同分组 一组一组的发 脚本里去通过 ssh 或者 scp 执行 这种是最基础最简单的操作了 不知道有没有高大上的解决方案 |
7
az422 2019-07-24 18:39:47 +08:00 via Android
Jenkins 发布包到中转机,再触发中转机通过 ansible 分发
|
8
buliugu 2019-07-24 23:31:01 +08:00
jenkins 构建 docker 镜像推到 harbor,然后用 k8s 部署,回滚扩容都非常方便
|
9
DeadLion OP |
10
StarkWhite 2019-07-25 10:31:51 +08:00
请教下个人小项目,部署一套 Jenkins 是否划算呢?
|