1、Jenkins所需环境
- Java环境(JDK、MySQL、Nginx、Redis)
Linux搭建Java环境:www.jianshu.com/p/366bf35b7…
- Git环境
- Maven环境
剩下的两个环境将在本篇安装
2、安装Git
yum install git -y
git --version
安装后无需任何配置
3、安装Maven
下载并解压
cd /usr/local/environment
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz --no-check-certificate
mkdir -p /usr/local/environment/maven
tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /usr/local/environment/maven
清空配置文件内容
mkdir /usr/local/environment/maven/repo
vim /usr/local/environment/maven/apache-maven-3.8.6/conf/settings.xml
:%d
配置文件替换
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>/usr/local/environment/maven/repo</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
配置环境变量
export MAVEN_HOME=/usr/local/environment/maven/apache-maven-3.8.6
export PATH=$PATH:$MAVEN_HOME/bin
测试安装结果
source /etc/profile
mvn -v
4、安装Jenkins
注意: Jenkins安装有两种方式:
- yum安装(这种方式安装的是最新长期支持版本,此版本支持的
最低Java版本为JDK11,大家可以根据实际情况选择安装) - 下载指定版本war包部署(可以任意指定版本)
4.1、安装方式一,yum安装:
# 安装Jenkins(最新长期支持版本,最低支持Java版本为JDK11)
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
4.1.1、修改配置文件,配置Jenkins镜像
1、配置文件位置
# 旧版本Jenkins配置文件位置(新版本此文件依然存在,但修改毫无作用!)
vim /etc/sysconfig/jenkins
# 新版本配置文件所在位置(通过yum安装一般都是新版本)
vim /usr/lib/systemd/system/jenkins.service
2、修改配置文件中启动用户为root
User=root
Group=root
4.1.2、启动Jenkins
1、启动Jenkins
systemctl daemon-reload
systemctl start jenkins
systemctl enable jenkins
2、查看初始密码
cat /var/lib/jenkins/secrets/initialAdminPassword
3、修改Jenkins服务器配置及修改国内镜像源
/var/lib/jenkins/updates/default.json # 服务器配置默认安装位置
# 将此文件中的updates.jenkins.io/download 替换为 mirrors.tuna.tsinghua.edu.cn/jenkins
# 然后,把 www.google.com 修改为 www.baidu.com
下载地址替换:
sed -i 's/updates.jenkins-ci.org\/download/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json
sed -i 's/www.google.com/www.baidu.com/g' /var/lib/jenkins/updates/default.json
修改为国内镜像:
进入 Manage Jenkins -> Manage Plugin -> Advanced 最下面有 Update Site,设置为:(以下任意一个都可以)
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
https://updates.jenkins.io/update-center.json
4、修改jenkins目录所属用户
chown -R root:root /var/lib/jenkins/
chown -R root:root /var/cache/jenkins/
chown -R root:root /var/log/jenkins/
设置完成需要重启Jenkins
4.2、安装方式二,war包部署:
cd /usr/local/environment
# 此版本支持Java 8, Java 11, or Java 17
wget https://mirrors.jenkins.io/war-stable/2.346.1/jenkins.war
# 下载完成后编写一个Jenkins启动脚本,并启动
4.2.1、war包启动脚本
#!/bin/bash
JENKINS_PATH="/usr/local/environment/"
PKG_NAME="jenkins.war"
PID=$(ps -ef | grep ${PKG_NAME} | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo ${PKG_NAME}"-程序未启动。"
else
kill -9 $PID
echo ${PKG_NAME}"-程序在启动中,已停止。"
fi
echo ${JENKINS_PATH}${PKG_NAME}
echo "current path:"$(pwd)
BUILD_ID=dontKillMe nohup java -jar ${JENKINS_PATH}${PKG_NAME} --httpPort=8080 >> /dev/null 2>&1 &
echo "starting service..."
sleep 20
#根据重启后是否有当前应用判断启动是否成功
endPID=$(ps -ef | grep ${PKG_NAME} | grep -v grep | awk '{ print $2 }')
if [ -z "$endPID" ]
then
echo ${PKG_NAME}"-程序启动失败。"
else
echo ${PKG_NAME}"-程序重启成功...pid:"${endPID}
fi
4.2.2、初始密码查看
# 通过war包安装后,配置Jenkins目录一般为用户的home目录下,比如:
/root/.jenkins/
# 查看密码
cat /root/.jenkins/secrets/initialAdminPassword
5、Jenkins插件安装
进入 Manage Jenkins -> Manage Plugin -> 第二个选项 Available 搜索以下三个插件:
- Git plugin
- Maven Integration plugin (此插件可以在创建项目时创建Maven项目)
- Publish Over SSH (发布文件到远程服务器时使用)
- NodeJS Plugin (构建vue项目时使用)
分别点击 Install without restart 按钮进行安装,全部安装完成后重启
6、添加全局配置
进入 Manage Jenkins -> Global Tool Configuration 进行全局配置
Maven Configuration 配置
# 配置内容(指定Maven的settings.文件)
/usr/local/environment/maven/apache-maven-3.8.6/conf/settings.xml
JDK 配置
/usr/local/environment/jdk1.8.0_341
Maven 配置
/usr/local/environment/maven/apache-maven-3.8.6
7、远程部署配置、Nodejs配置(可选)
如果要将构建好的jar包发布到远程服务器 或者 要构建Vue项目 则可以进行下面两个配置
7.1、远程部署配置
进入 Manage Jenkins -> Configure System 滑到最下面的 SSH Servers
7.2、Nodejs配置
进入 Manage Jenkins -> Global Tool Configuration 滑到最下面的 NodeJS
8、构建并发布Maven项目
注意:以下配置 本机发布 与 远程发布 配置一致!!!(属于公共配置)
8.1、进入Jenkins首页,新建一个项目
8.2、配置Git、Build
9、本机构建运行jar包
9.1、配置Jenkins执行脚本
9.2、配置服务器项目执行脚本
#!/bin/bash
# 若使用Jenkins构建启动这两行必须要加!!!(否则无法找到Java)
export JAVA_HOME=/usr/local/environment/jdk1.8.0_341
export PATH=$PATH:$JAVA_HOME/bin
JAR_PATH="../ruoyi-admin/target/"
PKG_NAME="ruoyi-admin.jar"
PID=$(ps -ef | grep ${PKG_NAME} | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo ${PKG_NAME}"-程序未启动。"
else
kill -9 $PID
echo ${PKG_NAME}"-程序启动中,已停止。"
fi
echo ${JAR_PATH}${PKG_NAME}
echo "current path:"$(pwd)
BUILD_ID=dontKillMe nohup java -jar ${JAR_PATH}${PKG_NAME} --spring.profiles.active=company --server.port=8090 >> /dev/null 2>&1 &
echo "starting service..."
sleep 20
#根据重启后是否有当前应用判断启动是否成功
endPID=$(ps -ef | grep ${PKG_NAME} | grep -v grep | awk '{ print $2 }')
if [ -z "$endPID" ]
then
echo ${PKG_NAME}"-程序启动失败。"
else
echo ${PKG_NAME}"-程序重启成功...pid:"${endPID}
fi
10、远程发布到服务器并运行jar包
注意:发布到远程服务器的jar包会带上项目的目录!!!具体情况可以发布成功后到服务器查看。可以使用下面的 Remove prefix 配置项进行删除
10.1、配置Jenkins执行脚本
10.2、配置服务器项目执行脚本
#!/bin/bash
# 若使用Jenkins构建启动这两行必须要加!!!(否则无法找到Java)
export JAVA_HOME=/usr/local/environment/jdk1.8.0_341
export PATH=$PATH:$JAVA_HOME/bin
# 第一次传过来的jar文件名称
FIRST_PKG_NAME="ruoyi-admin.jar"
JAR_PATH="/data/orange/"
PKG_NAME="ruoyi-admin-start.jar"
# 备份上次执行的jar文件
mv ${JAR_PATH}${PKG_NAME} ${JAR_PATH}${PKG_NAME}.$(date +"%Y%m%d%H%M")
# 将第一次传过来的jar重命名为要执行的名称
mv ${JAR_PATH}${FIRST_PKG_NAME} ${JAR_PATH}${PKG_NAME}
PID=$(ps -ef | grep ${PKG_NAME} | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo ${PKG_NAME}"-程序未启动。"
else
kill -9 $PID
echo ${PKG_NAME}"-程序启动中,已停止。"
fi
echo ${JAR_PATH}${PKG_NAME}
echo "current path:"$(pwd)
BUILD_ID=dontKillMe nohup java -jar ${JAR_PATH}${PKG_NAME} --spring.profiles.active=company --server.port=8090 >> /dev/null 2>&1 &
echo "starting service..."
sleep 20
#根据重启后是否有当前应用判断启动是否成功
endPID=$(ps -ef | grep ${PKG_NAME} | grep -v grep | awk '{ print $2 }')
if [ -z "$endPID" ]
then
echo ${PKG_NAME}"-程序启动失败。"
else
echo ${PKG_NAME}"-程序重启成功...pid:"${endPID}
fi
11、构建Vue项目并发布到远程服务器
11.1、创建自由风格项目
注意:Vue项目创建时为 自由风格项目 如下图: