在Linux上进行项目部署--手动和自动

在Linux上进行项目部署–手动和自动

1、手动部署项目

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

在idea中的Maven中的package(基于Springboot项目)

2、将jar包上传到Linux服务器

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

3、启动SpringBoot项目

使用命令:java -jar 项目jar包名

image-20230807212408086

要确保你的项目jar包所需要的jdk等环境的配置没有问题。

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

image-20230807212804281

5、 改为后台运行SpringBoot程序,并将日志输出到日志文件

目前程序运行的问题:

  • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
  • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
nohup命令:英文全称no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg ...][&]

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

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

image-20230807215452616

即使关掉终端,程序依然会执行。

6、 停止SpringBoot程序

查询进程号,使用kill终止运行项目:

image-20230807215833277

2、通过Shell脚本自动部署项目

操作步骤:
1、在Linux中安装Git
2、在Linux中安装maven
3、编写Shell脚本(拉取代码、编译、打包、启动)
4、为用户授予执行Shell脚本的权限
5、执行Shell脚本

在这里插入图片描述

1、在Linux中安装Git

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

2、使用Git克隆代码

cd /usr/local/
git clone https://gitee.com/mannor/helloworld.git

3、将maven安装包上传到Linux,在Linux中安装maven

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local            解压Maven包

vim /etc/profile              修改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>          (需要创建repo文件夹)

4、将shell脚本文件复制到Linux:

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=reggie_take_out

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/RegisTakeout/reggie_take_out

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

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

cd target

echo 启动项目
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie_take_out.log &
echo 项目启动完成

  • Shell脚本(shell script),是一种Linux系统中的脚本程序。
  • 使用Shell脚本编程跟JavaScript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

5、为用户授权

因为Linux是多用户系统,不同的用户具有不同的权限,所以就需要对用户授权才能执行脚本。

chmod(英文全拼: change mode)命令是控制用户对文件的权限的命令
Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
Linux的文件调用权限分为三级︰文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
只有文件的所有者和超级用户(root)可以修改文件或目录的权限
要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行

image-20230807223811197

前缀的用法说明如下:

在这里插入图片描述

chmod命令可以使用八进制数来指定权限:

image-20230807224110108

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

注意:三位数字分别代表不同用户的权限
	第1位表示文件拥有者的权限 
	第2位表示同组用户的权限
	第3位表示其他用户的权限

image-20230807224801750

6、使用命令执行shell脚本,启动服务:./bootStart.sh—>shell脚本文件名。

image-20230807225234590

7、设置静态ip

修改文件/etc/sysconfig/network-scripts/ifcfg-ens33(最后的文件名可能有差异),内容如下:(#包括的部分)

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
########################################################
BOOTPROTO="static"						#使用静态IP地址,默认为dhcp
IPADDR="192.168.138. 1ee"				#设置的静态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"
TPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"
UUID="95b614cd-79b0-4755-b08d-99f1cca7271b"DEVICE="ens33"
ONBOOT="yes"					#是否开机启用

image-20230807230439112

8、重启网络服务

命令:systemctl restart network

注意:重启完网络服务后ip地址已经发生了改变,此时FinalShell已经连接不上Linux系统,需要创建一个新连接才能连接到Linux。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼诺尔雷迪亚兹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值