当前位置:网站首页>项目部署、
项目部署、
2022-08-10 11:04:00 【白小筠】
项目部署
手工部署项目
1.打成jar包
2.上传Linux
3.使用命令运行程序
java -jar 包名
4.通过自己的ip地址访问网页
目前程序运行的问题是:
- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
- 线上程序不会将日志输出到控制台,而是输出日志文件,方便运维查阅信息
nohup
命令:英文名称no hang up(不挂起),用于不挂断地运行指定程序,退出终端不会影响程序的运行
语法格式:nohup Command[Arg ...][&]
参数说明:
Command:要执行的命令
Arg:一些参数
&:让命令在后台运行
举例:
nohup java -jar boot工程.jar &>hello.log &
后台运行java -jar命令 ,并将日志输出到hello.log文件
5.停止服务
查找服务,获取进程id
ps -ef|grep java
kill -9 进程id
通过Shell脚本自动部署项目
1.在Linux中安装Git
yum list git
列出所有的Git安装包
yum install
获取的安装包名
将项目上传至仓库
在Linux中使用git克隆保存至/usr/local下
git clone 仓库地址
2.在Linux中安装Maven
上传
解压
tar -zxvf apache-maven-3.5.4-bin.tar.gz
打开配置文件配置环境变量
vim /etc/profile
在最后一行加入
export MAVEN_HOME=/usr.local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
PATH=$JAVA_HOME/bin:$PATH
配置立即生效source /etc/profile
查看maven版本mvn -version
创建本地仓库
mkdir repo
进入apache-maven-3.5.4下的conf目录中
打开settingsd.xml
配置本地仓库
<localRepository>/usr/local/repo</localRepository>
3.编写Shell脚本(拉去代码,编译,打包,启动)
bootStart.sh
#!/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/helloworld
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 项目启动完成
4.为用户授予执行Shell脚本的权限
chmod
Linux中权限分为:读(r)、写(w)、执行(x)三种权限
Linux的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其他用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
chomd命令可以使用八进制数来指定权限
7 | 读+写+执行 | rwx |
---|---|---|
6 | 读+写 | rw- |
5 | 读+执行 | r-x |
4 | 只读 | r– |
3 | 写+执行 | -wx |
2 | 只写 | -w- |
1 | 只执行 | –x |
0 | 无 | — |
举例:三位数字代表三位用户
chmod 777 booStart.sh 为所有用户授予读、写、执行权限
5.执行Shell脚本
6.设置静态ip
找到
/etc/sysconfig/network-scripts/ifcfg-ens33
打开ifcfg-ens33并修改
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
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=72d73c4d-640a-4295-9eb8-c7a92e727682
DEVICE=ens33
ONBOOT=yes
ZONE=public
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static" #使用静态IP地址,默认为dhcp
IPADDR="192.168.205.128" #设置静态IP地址
NETMASK="255.255.255.0" #子网掩码
GATEWAY="192.168.205.2" #网关地址
DNS1="192.168.205.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=72d73c4d-640a-4295-9eb8-c7a92e727682
DEVICE=ens33
ONBOOT=yes
ZONE=public
重启
systemctl restart network
边栏推荐
- Intel pushes 20220809 CPU microcode update to patch Intel-SA-00657 security vulnerability
- 快速上手,征服三种不同分布式架构调用方案
- 如何使用工程仪器设备在线监测管理系统
- LeetCode_443_压缩字符串
- 什么是幂等性?四种接口幂等性方案详解!
- Nocalhost - Making development more efficient in the cloud-native era
- 负载均衡原理分析与源码解读
- Hangdian Multi-School-Loop-(uncertainty greedy + line segment tree)
- mysql出现:ERROR 1524 (HY000): Plugin ‘123‘ is not loaded
- 建校仅11年就入选“双一流” ,这所高校是凭什么做到的?
猜你喜欢
从脚本到剪辑,影像大师亲授的后期制作秘籍
AUTOCAD——减少样条曲线控制点数、CAD进阶练习(三)
自媒体爆款标题怎么写?手把手教你写热门标题
WeChat applet, global variables change in one place and the state in other places also changes.
[E-commerce operation] Do you really understand social media marketing (SMM)?
第5章相似矩阵及二次型(4)
The brave rice rice, does not fear the brush list of 】 list has a ring
单目操作符(含原码反码补码转换)
4 of huawei offer levels, incredibly side is easing the bit in the interview ali?
做自媒体月入几万?博主们都在用的几个自媒体工具
随机推荐
电脑怎么设置屏幕息屏时间(日常使用分享)
[Brave food, not afraid of the linked list of brushing questions] Merging of ordered linked lists
A little self-deprecating deconstruction about farmers "code"
如何使用工程仪器设备在线监测管理系统
Where can I view the version record of WeChat applet submission review history?
mysql出现:ERROR 1524 (HY000): Plugin ‘123‘ is not loaded
POJ 1026 Cipher (Permutation Groups)
Centos7 environment uses Mysql offline installation package to install Mysql5.7
Short video software development - how to break the platform homogenization
Clicking Exercise - 64 Longest Harmonic Subsequences
【Untitled】
LeetCode_152_乘积最大子数组
力扣练习——60 二叉搜索子树的最大键值和
英特尔推送20220809 CPU微码更新 修补Intel-SA-00657安全漏洞
flask-restplus接口地址404问题
Do self-media monthly income tens of thousands?Several self-media tools that bloggers are using
Licking Exercise - 59 From Binary Search Trees to Greater Sum Trees
Stroke Practice - 62 Valid Sudokus
How to join We Media, learn about these 5 monetization modes, and make your account quickly monetize
C#实战:基于ItextSharp技术标签生成小工具