Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
我们一般就是用来发布项目的新版本以及支持版本的回滚。
因为正好要迁移服务器,就从头搭建了一遍。不过仅仅是实现了远程登录后的部署项目,至于像 Maven
打包后部署的项目还没有研究。
安装
安装前准备
软件环境
ubuntu-server-18.04
软件版本
长期支持版本 (LTS) (debian-stable)
实际使用下来,这个长期支持版本更新的也蛮频繁的。对于看见红色小角标就想点的我来说,简直不能忍,所以每次都想更新。
软件依赖
官网说明,
Jenkins
是依赖Java
的:
- 2.164 (2019-02) and newer: Java 8 or Java 11
- 2.54 (2017-04) and newer: Java 8
- 1.612 (2015-05) and newer: Java 7
安装
参照官网的教程,其实安装是很简单的。有两种安装方式,都是基础的 ubuntu
命令:
1、添加源的方式安装
# 添加Jenkins源
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# 更新并安装
sudo apt-get update
sudo apt-get install jenkins
这里我选择的是长期支持版本,所以是 debian-stable
,如果想用每周更新版,那就用 debian
替换 debian-stable
就好。不过目前这个官方源的速度国内堪忧,后面会说到。
2、下载 deb
文件后安装
官网下载对应版本的 deb
,然后包管理安装就行。
sudo dpkg -i <package.deb>
安装完成后,Jenkins
就会启动了,默认端口是 8080
,可以编辑 /etc/default/jenkins
,修改为需要的启动端口。
比如----HTTP_PORT=8080----
修改为----HTTP_PORT=8081----
设置向导
浏览到 http://localhost:8080
(或安装时为Jenkins配置的任何端口),并等待解锁 Jenkins页面出现。
实际的解锁密码路径有可能不是这个,比如我的服务器就是 /var/lib/jenkins/secrets/initialAdminPassword
。
然后按照指示进行下去,创建一个管理员帐号,就能开始使用了。
更新
1、Jenkins
版本更新升级
- 下载提示的
jenkins.war
包,上传到服务器 -
查看
jenkins.war
的目录,比如是:/usr/share/jenkins/jenkins.war
,可用如下命令查看:ps aux | grep jenkins
- 备份初始的
jenkins.war
包:cp /usr/share/jenkins/jenkins.war jenkins.war.bak
- 停止服务:
/etc/init.d/jenkins stop
- 替换新的
war
包后,启动服务:/etc/init.d/jenkins start
2、Jenkins
插件升级
点击 系统管理 --> 插件管理 --> 可更新
,勾选需要更新的插件更新即可。
之前一直都是这样一键升级,一般不会有什么问题,直到最近发现一直出现连接或下载超时。
发现是 Jenkins
的官方源太慢了,遇到这种情况,替换源就好了。
这里有清华大学的源推荐使用:https://mirrors.tuna.tsinghua.edu.cn/jenkins/
点击 系统管理 --> 插件管理 --> 高级 --> 升级站点
在 URL
输入框中填入对应版本的源 update-center.json
文件提交即可,比如:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/stable-2.204/update-center.json
然后再获取更新就很顺利了。
0、Jenkins
引起的系统更新
在使用方式一(添加源的方式)安装 Jenkins
后,会在系统的检查更新中添加 Jenkins
,如果访问超时,会影响日常的系统更新维护。
我是直接把他移除了,mv /etc/apt/sources.list.d/jenkins.list jenkins.list.bak
。
有了上述两步骤的更新,这个其实已经不需要了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。