1、环境准备

Linux镜像,这里我选择的是CentOS7官方精简版,特点是占用空间小

链接:https://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso

虚拟机软件,这里我选择的是VMWare15

SSH连接工具,这里我选择的是XShell6

2、环境配置

此处省略VMWareCentOS的安装步骤,直接从Linux中开始配置环境

1、配置网卡信息为静态IP地址,且开机自启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 编辑ifcfg-ens33 按i进入编辑模式
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 将内容全部替换为如下信息 注意修改IP和网关为自己的
TYPE=Ethernet
BOOTPROTO=static
DEVICE=ens33
ONBOOT=yes
IPADDR=IP地址
NETMASK=255.255.255.0
GATEWAY=网关地址
DNS1=8.8.8.8
# 按esc退出编辑模式 输入如下命令保存并退出
:wq
# 重启网卡
service network restart
# 因为是最小化安装 此时可用命令ip addr查看分配网卡情况
ip addr

# 关机 配置网络为桥接模式
# 开机联网后安装ifconfig功能
yum install net-tools

2、此时我们可以使用XShell连接到我们的虚拟机了,接下来准备需要的软件

Maven3.6.3https://cloud.189.cn/t/YVr6vuBR7Fbq(访问码:`u62v`)

Jenkinshttps://cloud.189.cn/t/QnMjeqfmiAf2(访问码:`tc7l`)

JDK8https://cloud.189.cn/t/URzqMjZR3MVb(访问码:`8zp2`)

3、将上述软件准备好后,我们使用Xftp将所有下载的文件上传到CentOS中任意目录下,这里我选择的是/root目录下,然后使用命令进行解压

1
2
tar -zxvf apache-maven-3.6.3-bin.tar.gz
tar -zxvf jdk-8u251-linux-x64.tar.gz

4、将目录名修改为JDK8maven,并新建文件夹repo用于存放maven下载的依赖jar

修改maven/conf/settings.xml配置文件,修改内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/root/repo</localRepository>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>

5、现在我们需要将mavenJDK加入到环境变量中

1
2
3
4
5
6
7
8
# 修改profile文件
vi /etc/profile
# 在文件最后加上如下内容
export JAVA_HOME=/root/JDK8
export MAVEN_HOME=/root/maven
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
# 保存退出后执行命令保存配置文件
source /etc/profile

6、执行命令安装git

1
2
3
4
5
6
# 联网安装git
yum install git
# 查看git安装位置
whereis git
# 结果如下
git: /usr/bin/git /usr/share/man/man1/git.1.gz

7、因jenkins默认端口是8080,所以我们要放行8080端口,否则无法访问

1
2
3
4
5
6
7
# 编辑/etc/sysconfig目录下iptables文件 如没有该文件 使用如下命令安装
yum install -y iptables
yum install iptables-services
# iptables新增内容如下 端口为jenkins启动端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
# 如果依旧不能访问 关闭防火墙
systemctl stop firewalld

8、启动jenkins,默认端口是8080,即可看到解锁jenkins界面了

1
2
3
4
# 前台启动命令
java -jar jenkins.war
# 后台启动命令
nohup java -jar jenkins.war &

使用如下命令查看管理员密码

1
cat /root/.jenkins/secrets/initialAdminPassword

然后安装插件、新建用户的名字跟密码,最后进入到jenkins的首页

9、因为jenkins默认的插件下载速度极其缓慢,我们先将下载源修改为国内源

1
2
3
4
5
6
7
8
9
10
11
12
13
# 进入jenkins工作目录中的updates目录下
# jenkins工作目录可参考第一步管理员密码存放的路径
cd /root/.jenkins/updates/
# 编辑default.json
vi default.json
# 按i进入编辑模式 输入: 后面粘贴如下内容
1,$s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g
# 继续输入: 粘贴如下内容
1,$s/http:\/\/www.google.com/https:\/\/www.baidu.com/g
# 输入:wq保存并退出
:wq
# 浏览器输入如下地址 重启jenkins
ip:端口/restart

10、安装maven插件并将页面进行完全汉化

首先安装maven插件

然后安装汉化插件

安装完成后返回首页,进入到配置系统页面

找到Locale选项,输入zh_US,这里并不是输入错误,一定要是zh_US才能完全汉化

应用保存后,地址栏输入restart重启jenkins

11、重启完成后,点击系统管理-全局工具配置

按如下图配置mavenJDK的路径

输入如下命令 查看git安装位置

1
whereis git

将前半部分路径配置到git

1
git: /usr/bin/git /usr/share/man/man1/git.1.gz

配置maven路径,之后点击应用-保存

3、新建任务

1、点击首页的新建任务

2、新建一个maven任务,名字随便起,点击确定

3、在源码管理中输入你的项目地址,以及添加该项目网站的账号密码,例如使用的如果是码云,就输入码云的账号密码,输入的是github那就输入github的账号密码,填写成功后记得在Credentials选一下

刚刚录入的账号密码选项

4、设置maven的打包命令

5、应用-保存,回到首页后点击立即构建,我们可以看到控制台输出BUILD SUCCESS

6、将控制台输出的jar包位置记录下来,即上方蓝色部分的路径

1
/root/repo/starFire/starFire-api/0.0.1-SNAPSHOT/starFire-api-0.0.1-SNAPSHOT.jar

到这里我们就完成了将项目从git地址下载并打包放到指定位置的操作了

4、启动项目

现在我们已经有jar包了,接下来只需要让jenkins帮助我们启动项目,就完成了自动部署的功能了

选择使用执行shell

将如下的shell脚本修改后输入,应用并保存即可

需要注意的修改的点:

修改JAR_NAMEJAR_PATHJAR_WORK_PATH

可参考我上面获取到的jar路径修改

/root/repo/starFire/starFire-api/0.0.1-SNAPSHOT/starFire-api-0.0.1-SNAPSHOT.jar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
#服务名称
SERVER_NAME=xinghuo
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=starFire-api-0.0.1-SNAPSHOT
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/root/repo/starFire/starFire-api/0.0.1-SNAPSHOT/
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/root/repo/starFire/starFire-api/0.0.1-SNAPSHOT/

echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" |grep jar| awk '{print $1}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo "结束进程完成"

#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar

BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

项目已经启动成功了