Jenkins

Jenkins 是目前最流行的开源免费持续继承工具。是基于Java开发的,用于监控持续重复的工作,包括:持续的软件版本发布/测试项目,监控外部调用执行的工作。

前置条件

  • 256MB内存,建议大于512MB
  • 10GB的硬盘空间(用于Jenkins和Docker镜像)
  • Java 8 或 Java 11

安装

官网下载open in new window, 服务器下载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

  1. 第一次访问Jenkins,需要先解锁初始密码,再设置用户名和密码。<按照页面上的提示走就可以了>

  2. 安装插件,点安装推荐插件就行了。不要搞那么花里胡哨的!顺着点点点,一路点进去就完事了!

简单的Jenkins就配置好了🎉

  1. 如果不是中文,可以配置中文插件。下载插件 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
jenkins-ssh

配置 Nodejs

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

jenkins-nodejs

配置 Git Parameter

是偶然发现的!!可以选择分支,更方便的选择构建不同环境。懒人必备!!!

以前我还是手动加好几个item… 说实话有点傻乎乎

但是如果sit、uat 部署的路径不一样的话 最好还是分开来哦

git-parametergit-parameter-设置分支git-parameter-配置运行参数

最后,构建的时候就可以选择啦! git-parameter-构建

配置构建项目

  1. 源码管理,用github, gitlub, gitCode 都可以,随便你爱用哪个用哪个。,报错多半是没有权限拉取代码。⚠️首先检查账号是否正确,是否有权限。

系统管理 -> Manage Credentials -> 全局凭据(任意点一个超链接) -> 添加凭据

添加凭据,登录git仓库

接着就是配置仓库,用哪个仓库,账号就对应哪个,不要选座。

注意:在使用github时,url可以为xxx.git。而使用gitCode,url不需要.git结尾。

  1. 构建触发器,可以定时每天构建,也可以推送完代码后构建,有很多选择可以自己配置。

  2. 构建环境,需要下载npm包,在构建环境下,需要勾选 Provide Node & npm bin/ folder to PATH, 选择上面配置的Nodejs。

  3. 构建命令,我选择的是 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

  1. 登录Jenkins -> 系统管理 -> 系统配置 -> GitHub -> 点开 "高级" -> 勾选 "为 Github 指定另外一个 Hook URL" -> 生成hook url
hook url

这里的地址就是上面在github webhook的地址

配置github里的webhooks

  1. Github先进去本次构建要用到的工程(当前jenkins要构建的项目!!);

  2. Settings -> Webhooks(左侧)-> Add webhook

  3. url 位置写上Jenkins的hook url

添加webhooks

生成 Person access tokens

Jenkins访问Github时,有的操作是需要授权的,所以要生成token。

  1. 登录Github, 右上角头像 -> Setting -> Developer Settings(左侧边栏) -> Person access tokens -> Generate new token(生成一个新token)

  2. 创建给Jenkins使用的token,勾选repo 和 admin:repo_hook,生成token后复制下来,接下来还会用到!

生成token

配置Github server

  1. 现在Jenkins在第一步安装插件的时候,就会自动安装此插件了。如果没有的话,请手动安装插件 GitHub Plugin

  2. 登录Jenkins,系统管理 -> 系统配置 -> Github -> 添加Github服务器

添加Github服务器添加访问凭据

关联项目

进入Jenkins配置里面,配置以下内容

  1. General -> 勾选 "GitHub 项目" -> 添加项目地址

  2. 源码管理 -> 源码库浏览器 -> 选择 githubweb -> 填写项目主页路径

  3. 构建触发器 -> 勾选 "Github hook trigger for GITScm polling"

项目关联hooks
  1. 构建环境 -> 勾选 "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

Last Updated:
Contributors: kk