1.项目部署-手工部署项目(繁琐,效率低下)
1.1 在IDEA中开发SpringBoot项目,并打包成jar包
双击package,进行打包
打包成功
1.2将jar包上传到Linux服务器
创建目录,将项目jar包放到此目录
mkdir /usr/local/app
使用以下命令进行上传
rz


1.3 启动springboot程序
java -jar HelloWorld-1.0-SNAPSHOT.jar

1.4外部浏览器,访问,检查8080端口防火墙是否打开
firewall-cmd --zone=public --list-ports


1.5改为后台运行SpringBoot程序,并将日志输出到日志文件
目前程序运行的问题
- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
- 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
nohup命令:英文全称no hangup (不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg ..][&]
参数说明:
Command:要执行的命令
Arg:一.些参数,可以指定输出文件
&:让命令在后台运行
举例:
后台运行java -jar命令,并将日志输出到hello.log文件
nohup java -jar boot工程.jar &> hello.log &
nohup java -jar HelloWorld-1.0-SNAPSHOT.jar &>hello.log &

1.6停止SpringBoot程序
ps -ef | grep java

使用以下命令杀死进程
kill -9 88835

2.项目部署-通过shell脚本自动部署项目
2.1 操作步骤概述

2.2 Step1-在Linux中安装安装git
列出git安装包
yum list git
在线安装git
yum install git
2.3 Step2-使用Git克隆代码

cd /usr/local
git clone https://gitee.com/jlxqjx/demo.git

首先要配置公钥:
1.配置帐户和密码
git config --global user.name "Your gitee Name"
git config --global user.email "email@example.com"
2.查看配置是否生效
git config --list
3.先在本地生成ssh key,生成公钥和私钥,后续在gitee中需要用到
ssh-keygen -t rsa -C "your_email@youremail.com"
4.确认路径按1次回车,提示:Enter passphrase(输入密码),不用输密码再按2次回车即可。生成的密钥存放路径 /root/.ssh/id_rsa
- 3、id_rsa:私钥 ,id_rsa.pub:公钥
cat /root/.ssh/id_rsa.pub
6.打开gitee 配置SSH即可
7.拉取代码
cd /usr/local/
git clone 代码链接
2.4Step3-在Linux中安装安装maven

1.将maven安装包上传到Linux,在Linux中安装maven
apache-maven-3.5.4-bin.tar
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
2.修改配置文件,加入如下内容
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

source /etc/profile #重新加载一下
mvn -version
3.修改配置文件内容如下
mkdir repo
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
<localRepository>/usr/local/repo</localRepository>

2.5 Step4-编写shell脚本


#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=HelloWorld
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/liunx-test
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar HelloWorld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成



2.6 Step5-为用户授予执行Shell脚本的权限


举例
chmod 777 bootStart.sh 为所有用户授予读、写、执行权限
chmod 755 bootStart.sh为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
2.7 Step6-执行Shell脚本
./bootStart.sh

2.8 git本地修改代码,在上交gitee


2.9 设置静态ip
这里是动态ip

修改文件(这个文件不同系统不一样)/etc/sysconfig/network-scripts/ifcfg-ens33,内容如下:(ifcfg-ens33这个不同版本系统可能不同)
vim ifcfg-ens33

TYPE="Ethernet"
PROXY_ METHOD="none"
BROWSER_ _ONLY="no"
BOOTPROTO= "static" #使用静态IP地址,默认为dhcp
IPADDR="192.168.19.0" #设置的静态IP地址 和自己虚拟机里的要一致,即上图框出来的
NETMASK="255.255.255.0" #子网掩码
GATEWAY="192.168.19.2" #网关地址
DNS1="192.168.19.2" # DNS服务器
DEFROUTE="yes"
IPV4_ FAILURE_ FATAL="no"
IPV6INIT="yes"
IPV6_ _AUTOCONF="yes"
IPV6_ DEFROUTE="yes"
IPV6_ _FAILURE_ _FATAL="no"
IPV6_ ADDR_ GEN_ MODE="stable-privacy"
NAME= "ens33"
UUID="95b614cd- 79b0- 4755- be8d-99f1cca7271b"
DEVICE="ens33"
ONBOOT= "yes" #是否开机启用


重启网络服务
systemctl restart network
重新建立一个连接

2.10 总体流程(环境配置已经配置好)
1.使用Git克隆代码
cd /usr/local
git clone https://gitee.com/jlxqjx/demo.git

2.编写shell脚本

//这里已创建此文件夹
cd sh
vim bootStart.sh
输入i进行编辑,esc进入命令编辑:wq保存
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=HelloWorld
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/liunx-test
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar HelloWorld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成


3.为用户授予执行Shell脚本的权限
chmod 777 bootStart.sh

4.Step6-执行Shell脚本
./bootStart.sh

5.运行成功

6.查看日志
//找到日志文件所在的位置
find / -name demo.log

7. git本地修改代码,在上交gitee

./bootStart.sh
