前言
本文主要介绍Jenkins在linux上的安装步骤、项目打包、部署的过程。本文使用的Jenkins版本为Jenkins 2.319.3。
一、Jdk8下载安装
Jenkins依赖jdk,所以需要先按照jdk1.8:
# 检查是否已经存在java相关命令
rpm -qa|grep java
rpm -qa|grep jdk
rpm -qa|grep gcj
# 如果需要卸载
rpm -qa | grep java | xargs rpm -e --nodeps
# 检索Java1.8源列表
yum list java-1.8*
# 安装Java1.8
yum install java-1.8.0-openjdk* -y
# 查询JAVA_HOME
which java
# 返回
/usr/bin/java
# ls -l命令
ls -l /usr/bin/java
# 返回
lrwxrwxrwx 1 root root 22 Nov 13 14:37 /usr/bin/java -> /etc/alternatives/java
# ls -l命令
ls -l /etc/alternatives/java
# 返回
lrwxrwxrwx 1 root root 73 Nov 13 14:37 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64/jre/bin/java
# 则JAVA_HOME路径为:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64
#安装成功后,默认安装路径在/usr/lib/jvm/下边,
#如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64
#使用命令检查是否安装成功
java -version
#到此安装结束了。这样安装有一个好处就是不需要对path进行设置,自动就设置好了
二、Jenkins下载安装
1.jenkins安装
命令切换到下载目录
用命令下载
wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.319.3-1.1.noarch.rpm
下载直接安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
2.修改Jenkins配置
vi /etc/syscofig/jenkins
修改信息如下:
JENKINS_USER="root"
JENKINS_PORT="8888"
3.启动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.
解决方法:
打开该文件:vim /etc/init.d/jenkins
配置Jenkins里的JDK路径
配置完后依次执行以下命令
执行 systemctl daemon-reload 命令重新加载配置文件
执行 systemctl start jenkins 命令启动Jenkins
执行 systemctl status jenkins.service 命令查看Jenkins服务的状态
4.打开浏览器访问Jenkins
访问:http://ip:8888
注意:需要把服务器防火墙关掉,若开启防火墙,则需要在防火墙添加访问端口,CentOS:
1、开启防火墙
systemctl start firewalld
2、开放指定端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
命令含义:
--zone #作用域
--add-port=8888/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
3、重启防火墙
firewall-cmd --reload
4、查看端口号
netstat -ntlp #查看当前所有tcp端口·
如图,表示安装成功
5.获取管理员密码
cat /var/lib/jenkins/secrets/initialAdminPassword
然后复制密码粘贴到上面登录界面的管理员密码输入框中,点击继续。
6.自定义Jenkins
这里推荐点击“选择插件来安装”
然后下一个界面把勾选的插件全部取消掉
因为Jenkins默认连接官方,速度非常慢,而且经过会失败,所以先跳过插件安装(后面可以修改插件下载地址,来加速插件安装)。
7.创建管理员用户
1)根据提示创建管理员用户
2)实例配置(默认就好了)
3)看到Jenkins已就绪说明已经没问题了啦,点击开始使用,等待一会
8.修改插件下载地址
进入插件管理,需要先点击“可选插件”这个页签,并等待响应完成,等待插件地址文件下载完成。
9.安装汉化插件
10.用户权限管理
1、安装插件(功能:可以设置用户根据角色来拥有不同的权限,默认不装插件的话,jenkins的权限管理比较粗粒度: 登录用户可以做任何事)
2、开启全局安全配置
3、设置角色(主要是基础角色和项目角色)
4、分配用户角色
5、用户分配对应项目角色后,则只能看到对应项目角色所匹配的项目
11.jenkins凭证管理
1、安装插件
2、插件安装完成后,进入凭证管理,新增凭证
12.安装Git插件和Git工具
为了让Jenkins支持从gitlab拉取源码,需要安装git插件以及在linux系统上安装git工具
git插件安装:
在linux上安装git工具:
yum install git -y 安装
git --version 安装后查看版本
13.Maven安装
1、下载地址安装
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
2、解压安装
tar -xzvf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /opt/maven
3、配置环境变量
使用vim编辑/etc/profile文件
vim /etc/profile
在/etc/profile文件末尾增加以下配置:
提示:由于maven依赖jdk,所以最好把jdk的环境变量也配置上(注意:JAVA_HOME是jdk的安装路径)。
#set maven environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/tools.jar:$JAVA_HOME/dt.jar
export JAVA_HOME PATH CLASSPATH
M2_HOME=/maven
PATH=$M2_HOME/bin:${PATH}
export M2_HOME PATH
4、重新加载/etc/profile文件
source /etc/profile
java -version #查看jdk版本
mvn -v #查看maven版本
14.jenkins上配置jdk和maven
15.jenkins上系统配置添加全局属性,类似在linux的profile文件中添加环境变量 ,目的是让jenkins能识别相关命令
16.修改maven的settings.xml文件
17.安装maven插件,以便能创建maven风格的项目
至此,Jenkins相关的安排配置大致完成,即可进行项目构建。
三、Jenkins自由风格项目构建
1、新建自由风格项目
2、配置git拉取代码 (此例为前端vue项目)
3、编译打包(构建->添加构建步骤->执行shell)
cd /var/lib/jenkins/workspace/bg-web-prod/
rm -rf ROOT
cp -r dist ROOT
expect -c "
spawn scp -r ROOT root@110.117.0.16:/app/tomcat9/webapps/
expect {
\"*password\" {set timeout 30; send \"123\n\";}
\"yes/no\" {send \"yes\n\"; exp_continue;}
}
expect eof"
上述脚本实现的把编译后的包放到tomcat中,也可以使用第二种方式,即使用以下部署到容器的插件来实现把打包后的项目包上传到tomcat中,进行远程部署:
四、Jenkins Maven项目构建
1、新建maven风格项目
2、配置git拉取代码 (此例为后端java项目)
3、编译打包(构建->添加构建步骤->执行shell)
cd /var/lib/jenkins/workspace/bg-dev/anyu/target/
expect -c "
spawn scp anyu-1.0.0.jar root@120.127.18.10:/app/anyu/
expect {
\"*password\" {set timeout 30; send \"123\n\";}
\"yes/no\" {send \"yes\n\"; exp_continue;}
}
expect eof"
至此,便可以进行立即构建项目了!