Linux部署项目

一、手动部署

1、终端直接部署(前台运行)

(1)在IDEA中开发SpringBoot项目并打成jar包

(2)将jar包上传到Linux服务器

mkdir /usr/local/app  #创建目录,将项目jar包放到此目录

(3)启动SpringBoot程序

java -jar xxx.jar

(4)检查防火墙,确保项目的访问端口对外开放,访问SpringBoot项目

(5)此方法关闭终端项目就停止运行了

2、后台运行部署

改为后台运行SpringBoot程序,并将日志输出到日志文件 目前程序运行的问题

线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行 ,也不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息。

(1)部署

nohup 命令:英文全称no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式:nohup Command[Arg ...][&]

参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行

举例:nohup java -jar boot工程.jar &> hello.log &            #后台运行java -jar命令,并将日志输出到hello.log文件

(2)停止运行

停止SpringBoot程序,先查找该进程,再将该进程杀掉

 

二、Shell脚本自动部署

1、在Linux中安装Git

列出git安装包
yum list git 
在线安装git
yum install git

克隆项目
cd /usr/local/
git clone https://github.com/username/projectName.git

2、在Linux中安装maven

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

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
vim /usr/local/apache-maven-3.5.4/conf/settings.xml         修改配置文件内容如下

<localRepository>/usr/local/repo</localRepository>

3、编写Shell脚本(拉取代码、编译、打包、启动)

 

 

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. . .'
    ki11 -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/helloworld

echo 开始从Git仓库拉取最新代码git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target

echo 启动项目
nohup java -jar helloworld-1.O-SNAPSHOT.jar &> helloworld.log &

echo项目启动完成

4、为用户授予执行Shell脚本的权限

chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令Linux中的权限分为:读(r)、写(w)、执行(x)三种权限

Linux的文件调用权限分为三级∶文件所有者(Owner)、用户组(Group)、其它用户(Other Users)只有文件的所有者和超级用户可以修改文件或目录的权限

要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行


 

5、执行Shell脚本

 ./test.sh 

6、设置静态ip,防止ip变动无法访问资源

虚拟机的ip是动态获取的,所以要设置为静态ip

 

修改文件/etc/sysconfig/network-scripts/ifcfg-ens33(不同服务器的ifcfg-ens33名称可能不一样),内容如下:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"  #使用静态IP地址,默认为dhcp
IPADDR="192.168.138.100”   #设置的静态IP地址
NETMASK="255.255.255.e"    #子网掩码
GATEWAY="192.168.138.2"        #网关地址
DNS1="192.168.138.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-b08d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes"    #是否开机启用

参考:

https://www.bilibili.com/video/BV13a411q753/?p=138

https://www.bilibili.com/video/BV13a411q753/?p=139

https://www.bilibili.com/video/BV13a411q753/?p=140

https://www.bilibili.com/video/BV13a411q753/?p=141

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值