把学习当作习惯

导航

Linux项目部署

手工部署项目

第一步,将所要部署的项目打成jar包
第二步,将jar包上传到linux服务器创建目录:mkdir /usr/local/app,输入rz上传jar包
第三步,启动springboot程序:在目录下输入java -jar + 对应jar包的名称
第四步:改为后台运行springboot程序,并将日志输出到日志文件
目前程序运行的问题:

  • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
  • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
    nohup命令:英文全称no hang up(不挂起),用于不挂断的运行指定命令,退出终端不会影响程序运行
    语法格式: nohup Command[ARG ...][&]
    参数说明:
    command:要执行的命令
    Arg:一些参数,可以指定输出文件
    &:让命令在后台运行
    举例: nohup java -jar boot工程.jar &> hello.log & 后台运行java-jar命令,并将日志输出到hello.log文件
    第五步,停止spring boot程序
    pa -ef | grep java找到对应服务的id
    kill -9 上边的id杀死服务

通过shell脚本自动部署项目

操作步骤:
1、在Linux中安装gityum list git列出git安装包 yum install git在线安装git
使用git克隆代码 cd /usr/local/进入路径 gti clone url克隆
2、在Linux中安装maven
将maven安装包上传到Linux,在Linux中安装maven
执行 tar -zxvf 文件 -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

执行mkdir repo创建自己的本地仓库
执行source /etc/profile
输入mvn -version 验证
执行vim /usr/local/apache-mavben-3.5.4/conf/settings.xml 修改配置文件如下
<localRepository>/usrl/local/repo</localRepository>
3、编写Shell脚本(拉去代码、编译、打包、启动)
Shell脚本(Shell script):是一种Linux系统中的脚本程序
使用Shell脚本能变成跟Javascript、Java变成一样,只要一个能编写代码的文本编辑器和一个能解释和执行的脚本解释器就可以了

#!/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/hello

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 项目启动完成

项目启动不起来提示没有权限再来添加以下两行到脚本中,添加到启动项目之前

chmod 777 jar包名称
chmod 777 日志文件名称

4、为用户授权执行Shell脚本的权限
chmod(英文全拼:change mode )命令是控制用户对文件的权限命令
Linux中的权限非为:读(r),写(w),执行(x)三种权限
Linux的文件调用权限分为三级:文件所有这(Owner),用户组(Group),其他用户(other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
只执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
image
第一位表示是文件还是目录,-表示文件,d表示目录
image
chmod命令可以使用八进制数来指定权限:
举例:
chmod 777 bootStart.sh 为所有用户授予读写执行权限
chmod 755 bootStart.sh 为文件拥有者授予独写执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh 为文件拥有者授予写权限,同组用户授予 执行权限,其他用户没有权限
注意:三位数字分别待变不同用户的权限:第一位表示文件拥有者权限,第二位表示同组用户的权限,第三位表示其他用户的权限
5、执行Shell脚本
执行脚本可能因为没有配置maven 阿里云镜像导致打包过慢
vim /usr/local/apache-maven-3.5.4/conf/settings.xml在mirrors标签里面添加

    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyunmaven</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

即可

posted on 2022-12-17 21:32  生活的样子就该是那样  阅读(168)  评论(0编辑  收藏  举报