前提条件:安装JDK,这里小编安装的JDK1.8
查看JDK安装位置:echo $JAVA_HOME
linux安装jdk1.8:https://www.cnblogs.com/w-wu/p/13684480.html
如果你的系统没有自带git,那么也需要安装一个
yum install git
1. 第一种安装方式
1.1 进入官网:https://www.jenkins.io/
点击Download,找到内容并点击,根据提示进行安装即可。
1.2 安装
执行命令1:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
可能出现下方提示:
解决方案:
安装ca-certificates
yum install -y ca-certificates
再执行命令1
执行命令2:
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
执行命令3:
yum install jenkins
查看可安装版本:yum list --showduplicates jenkins
安装指定版本:yum install jenkins-2.234-1.1
更新到指定版本:yum update jenkins-2.235.5-1.1
使用yum安装程序时,提示xxx.rpm公钥尚未安装
命令后加上–nogpgcheck跳过公钥检查
有可能出现下面报错:
原因:
很多软件包在yum里面没有的,解决的方法,就是使用epel源,也就是安装epel-release软件包。EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS等系统。可以在下面的网址上找到对应的系统版本,架构的软件包。
解决方案:
yum -y install epel-release
安装完之后再执行命令3,发现居然无效,于是我打算升级一下yum
yum upgrade
yum update和yum upgrade的真正区别:
yum -y update:升级所有包同时,也升级软件和系统内核;
yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。
升级完之后再次执行命令3,发现然并卵…
于是乎我打算卸载Jenkins重新执行以上命令,
1、rpm卸载
rpm -e jenkins
2、检查是否卸载成功
rpm -ql jenkins
3、彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf
咦,这回居然可以了…
2. 第二种安装方式:直接下载 rpm 安装
官方似乎找不到rpm的包了,可以去清华大学开源软件镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
将下载好的rpm包上传到linux,进入到刚才上传的rpm包所在的目录,执行安装命令:
rpm -ivh jenkins-2.263.3-1.1.noarch.rpm
jenkins-2.263.3-1.1.noarch.rpm为刚才下载的rpm包名
3. 修改Jenkins配置
主要是修改两个地方:
第一个是账户:因为Jenkins默认的账户是jenkins的账户,这个账户我们没有,而且为了不因为权限出现各种问题,这里直接使用root,当然你也可以创建一个名叫jenkins的账户
第二个是端口:Jenkins的默认端口是8080,为了避免端口冲突,我们将它改掉
执行命令:
vim /etc/sysconfig/jenkins
启动Jenkins:
systemctl start jenkins
好家伙,又报错了
错误信息如下:
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
解决方案:
查看当前Java的环境变量 echo $JAVA_HOME
复制Java的环境变量地址, 编辑/etc/init.d/jenkins文件, 指定位置添加该地址, 后缀附上/bin/java
vim /etc/init.d/jenkins
修改完之后重新加载一下配置文件,使其生效:
systemctl daemon-reload
然后启动jenkins,将刚才修改的jenkins的8888端口放开或者直接关闭防火墙,这里我们直接关闭防火墙:
systemctl stop firewalld
重启jenkins命令:systemctl restart jenkins
4. Jenkins使用
在浏览器输入:ip:8888,直接访问jenkens
例如:192.168.12.132:8888
这里让我们输入管理员密码,密码的位置已经告诉我们了,查看密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
输入密码,点击继续,
这里我们点击第二个,跳过插件安装,因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经常会失败,所以我们暂时先跳过插件安装。
创建用户,随便创建,这里小编使用的用户名密码都是jenkins
然后一直下一步下一步就行了。
4. 安装插件
刚才在引导界面我们并没有选择安装插件,原因是因为jenkins默认从它的官网下载插件会非常慢,接下来我们将插件下载地址换成国内的。
4.1、点击Manage Jenkins—>Manage Plugins
4.2 点击Available,等页面测底加载完毕,这里会加载一些可以用的官方的一些插件的文件地址。
4.3 进入到jenkins的默认的开发目录
cd /var/lib/jenkins/
ll
可以看到里面有一个updates目录
在updates目录里面有一个default.json文件,这个文件里面有所有的插件的地址,这里面的地址记录的是国外的地址,所以是很慢的。
进入到updates目录执行命令:
cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jekins-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官方地址替换为清华大学的地址,将google地址替换为百度地址
最后点击Advanced,
下拉到最后方,将里面jenkins官方地址替换为清华大学地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
点击Submit后,重启jenkins
http://ip:8080/restart
5. 下载汉化插件
点击Manage Jenkins—>Manage Plugins—>Available
在搜索框输入:chinese
勾选复选框,点击下载完之后立刻重启。
等待下载…下载完勾选最后一行复选框就自动重启了
6. 安装用户权限管理插件:Role-based Authorization Strategy
因为Jenkins并没有完善的权限管理,所以需要安装插件来实现权限管理。
与汉化插件安装方法一样:
安装完之后,点击Manage Jenkins—>Configure Global Security
找到:授权策略
选择Role-Based Strategy
点击保存
6.1 管理角色
找到Manage Jenkins—>Manage and Assign Roles
进去之后可以看到有三种角色:Global roles、Item roles、Node roles
顾名思义:
Global roles:全局角色,最高权限的角色,我们刚创建的jenkins用户就是这个权限
Item roles:项目角色,针对项目分配的角色,例如不同的项目被不同的人访问,就使用这种角色
Node roles:节点角色,Jenkins主从的时候用到
创建角色:
ps:
步骤一:项目角色名
步骤二:表达式,表示可以访问test开头的项目
6.2 创建用户
找到:Manage Jenkins—>Manage Users—>新建用户
刚创建的用户是没有任何的权限的,注销当前用户,登录刚创建的dev用户:
6.3 给用户分配角色
找到:Manage Jenkins—>Manage and Assign Roles—>Assign Roles
点击save之后,登录dev用户,发现是看不到项目相关的目录:
给dev用户分配项目相关角色:
6.4 新建项目
7. Jenkins凭证管理
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便enkins可以和这些第三方的应用进行交互。
安装credentials Binding插件
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
安装插件后,在Manage Jenkins的Security模块,看到Manage Credentials,在这里管理所有凭证
低版本的在菜单栏左侧会有"凭证"菜单
点击Manage Credentials—>全局—>添加凭据
如上图所示,其中类型包括以下种:
第一种:用户名和密码,例如用户名密码方式从Git拉取代码
第二种:SSH方式(公钥&私钥),例如SSH方式从Git拉取代码
第三种:秘密文件方式
第四种:秘密文本方式
第五种:证书方式
第一种方式举例:gitee凭据
点击确定即可!
8. 创建项目&&拉取代码
安装Git插件:
点击确定之后往下滑—>源码管理:
点击应用、保存之后:
即可拉取代码成功!
9. Linux安装Maven和配置
小编这里安装apache-maven-3.6.1版本。
安装完之后,配置环境变量:
vi /etc/profile
最后两行是maven的环境变量,其中:/db/apache-maven-3.6.1是maven的安装目录。
然后执行命令,使配置生效:
source /etc/profile
# 查看mavne版本
mvn -v
修改maven的settings.xml配置文件:
# 进入maven安装目录
cd /db/apache-maven-3.6.1/
# 创建repo目录
mkdir repo
# 进入maven配置文件目录
cd /db/apache-maven-3.6.1/conf/
# 编辑配置文件
vi settings.xml
本地仓库地址:
阿里云依赖镜像地址:
9. Jenkins配置Maven&JDK
找到:Manage Jenkins—>Global Tool Configuration
找到:Manage Jenkins—>Configure System—>全局属性
10. Jenkins项目编译
找到项目配置,添加构建步骤
输入:
echo "项目开始打包"
mvn clean install package -T 1C -Dmaven.test.skip=true
echo "项目打包完成"
-T 1C参数解释:
例如:用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建
$ mvn -T 4 clean install
$ mvn -T 1C clean install
11. 安装Maven Integration插件构建Maven风格项目
12. 参数化构建-Git Paramete插件
效果:
13. 远程发布
可参考最新文章:
https://blog.csdn.net/RookiexiaoMu_a/article/details/128589691?spm=1001.2014.3001.5501
新建一个自由风格项目:
配置构建操作:
if [ -e "*.jar" ]; then
rm -rf *.jar
fi
cd /db/isee/
cp /var/lib/jenkins/workspace/isee-package-maven/isee-service/isee-api/target/*.jar isee-api.jar
配置构建后操作: