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、环境配置
此处省略VMWare
与CentOS
的安装步骤,直接从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.3
:https://cloud.189.cn/t/YVr6vuBR7Fbq(访问码:`u62v`)
Jenkins
:https://cloud.189.cn/t/QnMjeqfmiAf2(访问码:`tc7l`)
JDK8
:https://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、将目录名修改为JDK8
、maven
,并新建文件夹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、现在我们需要将maven
和JDK
加入到环境变量中
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、重启完成后,点击系统管理-全局工具配置
按如下图配置maven
和JDK
的路径
输入如下命令 查看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_NAME
、JAR_PATH
、JAR_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 &
|
项目已经启动成功了