Jenkins
Jenkins 是目前最流行的开源免费持续继承工具。是基于Java开发的,用于监控持续重复的工作,包括:持续的软件版本发布/测试项目,监控外部调用执行的工作。
前置条件
- 256MB内存,建议大于512MB
- 10GB的硬盘空间(用于Jenkins和Docker镜像)
- Java 8 或 Java 11
安装
官网下载, 服务器下载CentOS,rpm包。
拷贝到服务器/opt/ 下,再用rpm命令进行安装。
# 从本地上传到服务器上,这里我配的免密登录
$ scp /Users/kk/Downloads/jenkins-2.235.1-1.1.noarch.rpm kk:/opt/
# 进到opt目录,解压安装
$ cd /opt/ && rpm -ivh jenkins-2.235.1-1.1.noarch.rpm
启动
可以先看看是否安装成功, 能搜出一堆jenkins的目录,则证明安装成功。
可以看到里面有个配置文件 /etc/sysconfig/jenkins , 里面可以搜索 JENKINS_USER, JENKINS_PORT。
查看用户和端口有没有冲突,需不需要修改。
$ find / -name jenkins
# /etc/sysconfig/jenkins
# 默认用户是jenkins,可以更改
JENKINS_USER="jenkins"
# 默认端口 8080
JENKINS_PORT="8080"
我这里没有修改。直接启动的。启动完是个服务, 可以关闭终端。
$ systemctl start jenkins
启动完后就可以在页面上访问了,访问地址: http://服务器ip或域名:8080/
第一次打开会很慢,需要耐心等待!⌛️
替换插件源
因为下一步安装jenkins将会下载很多插件,这里先替换插件源的地址,会比较快哦。
清华源地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在服务器上操作👇
$ cd /var/lib/jenkins
$ vim hudson.model.UpdateCenter.xml
# 将url修改成清华源地址,保存完后再进行下面步骤
$ cd /var/lib/jenkins/updates
$ sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
页面上操作
也可以等安装完插件后,在jenkins页面上配置,方便以后下载。
插件管理 -> 高级 -> 升级站点 里配置
配置Jenkins
第一次访问Jenkins,需要先解锁初始密码,再设置用户名和密码。<按照页面上的提示走就可以了>
安装插件,点安装推荐插件就行了。不要搞那么花里胡哨的!顺着点点点,一路点进去就完事了!
简单的Jenkins就配置好了🎉
- 如果不是中文,可以配置中文插件。下载插件
Local, 系统管理 -> 系统配置 -> Locale 默认语言填入 zh_CN
必备插件
- NodeJS
- Git PreBuildMerge Trait Plugin
- GitHub Integration
- Publish Over SSH
- SSH Agent
- Git Parameter
配置 SSH
配置免密登录。
Key 的优先级比 Path to key高, 两个填一个即可。我这里直接用把公钥粘贴到key上面就好了。
查看密钥
$ cd ./.ssh
# 查看是否有公钥,后缀为.pub
$ ls

配置 Nodejs
系统管理 -> 全局工具配置 -> Nodejs

配置 Git Parameter
是偶然发现的!!可以选择分支,更方便的选择构建不同环境。懒人必备!!!
以前我还是手动加好几个item… 说实话有点傻乎乎
但是如果sit、uat 部署的路径不一样的话 最好还是分开来哦



最后,构建的时候就可以选择啦! 
配置构建项目
- 源码管理,用github, gitlub, gitCode 都可以,随便你爱用哪个用哪个。,报错多半是没有权限拉取代码。⚠️首先检查账号是否正确,是否有权限。
系统管理 -> Manage Credentials -> 全局凭据(任意点一个超链接) -> 添加凭据

接着就是配置仓库,用哪个仓库,账号就对应哪个,不要选座。
注意:在使用github时,url可以为xxx.git。而使用gitCode,url不需要.git结尾。
构建触发器,可以定时每天构建,也可以推送完代码后构建,有很多选择可以自己配置。
构建环境,需要下载npm包,在构建环境下,需要勾选
Provide Node & npm bin/ folder to PATH, 选择上面配置的Nodejs。构建命令,我选择的是
Execute shell。 操作中如果有删除,修改等操作,那么就需要用root用户!或者sudo。
这里我是将jenkins改成了root用户。
$ vim /etc/sysconfig/jenkins
# 修改$JENKINS_USER,并去掉当前行注释
$JENKINS_USER="root"
# 修改Jenkins相关文件夹用户权限
$ chown -R root:root /var/lib/jenkins
$ chown -R root:root /var/cache/jenkins
$ chown -R root:root /var/log/jenkins
注意!!! 配置完一定要重新启动一下Jenkins,不然会有错误!深刻的教训,开始没发现,还傻傻的重装了一次jenkins。第二次菜贩找到原来是没有重启的问题!!
$ systemctl stop jenkins
$ systemctl start jenkins
这些都配置完后,就可以开始构建啦!有问题就看控制台输出!
相信都可以的!多练练 👏👏👏
配置webhooks
不想配置的可以直接跳过,下面高图预警!!!
功能:当Github收到代码更新后,就会自动构建jenkins。
Jenkins里获取hook url
- 登录Jenkins -> 系统管理 -> 系统配置 -> GitHub -> 点开 "高级" -> 勾选 "为 Github 指定另外一个 Hook URL" -> 生成hook url

这里的地址就是上面在github webhook的地址
配置github里的webhooks
Github先进去本次构建要用到的工程(当前jenkins要构建的项目!!);
Settings -> Webhooks(左侧)-> Add webhook
url 位置写上Jenkins的hook url

生成 Person access tokens
Jenkins访问Github时,有的操作是需要授权的,所以要生成token。
登录Github, 右上角头像 -> Setting -> Developer Settings(左侧边栏) -> Person access tokens -> Generate new token(生成一个新token)
创建给Jenkins使用的token,勾选repo 和 admin:repo_hook,生成token后复制下来,接下来还会用到!

配置Github server
现在Jenkins在第一步安装插件的时候,就会自动安装此插件了。如果没有的话,请手动安装插件 GitHub Plugin
登录Jenkins,系统管理 -> 系统配置 -> Github -> 添加Github服务器


关联项目
进入Jenkins配置里面,配置以下内容
General -> 勾选 "GitHub 项目" -> 添加项目地址
源码管理 -> 源码库浏览器 -> 选择 githubweb -> 填写项目主页路径
构建触发器 -> 勾选 "Github hook trigger for GITScm polling"

- 构建环境 -> 勾选 "Use secret text(s) or file(s)" -> 选择 "Secret text"

到这里就配置完成了!现在来测试一下吧~ 提交代码后,看看会不会自动构建jenkins!
卸载
使用rpm 卸载jenkins
# 查看
$ rpm -qa jenkins
# 卸载
$ rpm -e jenkins
# 检查是否卸载干净
$ rpm -ql jenkins
# 彻底删除残留文件
find / -iname jenkins | xargs -n 1000 rm -rf
test11