主要想解决的问题:有一种传统的java项目上线的方式:代码测试好了,上线流程是:项目经理在本地用mvn install打war包,然后丢给运维人员进行部署上线。这样半自动的做法缺点是:1.打包时间长,如果是个分布式大型系统都的手动install。3.要保证本地代码都是此次上线内容,一个解决办法是准备一套上线专用环境。3.出错概率大:如果一个系统有好几台服务的话,运维人员每个都得手动做,耗时长,也容易忘记哪台忘上(我们就有时会遇到这问题,一旦出现问题还特难定位)。而且这是一个重复造轮子的过程,繁琐又枯燥。所以我想弄一个能够自动部署的环境,实现全自动部署。java和tomcat在linux上的配置之前已完成,也可以参考这篇https://blog.youkuaiyun.com/shidebin/article/details/83548436进行配置
1. 先看虚拟机是否可以上网:
ping www.baidu.com
不通说明不能上网
2. 解决不能上网
https://blog.youkuaiyun.com/hy9418/article/details/79382141
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DDR=6C:0B:84:A6:40:C4
#UUID=f1e1c1a0-571b-4f95-a921-5b130691b3c8
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.126.135
PREFIX=24
GATEWAY=192.168.2.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
DNS1=223.5.5.5
需要修改的地方IPADDR,GATEWAY,DNS1:
IPADDR你给本机固定的ip地址,可以自己写
GATEWAY,DNS1需要跟windows的相同:
进入docs窗口:
ipconfig /all
找到默认网关和DNS服务器,相应的配置上去,然后重启。
systemctl restart network
3. Git的安装
3.1 查看git是否已经安装:git –version
3.2 若没有安装则安装:yum -y install git
4. maven的安装:
4.1在maven官网下相应的linux版本的安装包.
4.2把刚才下载安装包上传到resource目录下并解压
cd /usr/local/resource
rz
mkdir ../maven
tar -zxvf apache-maven-3.6.1-bin.tar.gz -C ../maven
4.3配置maven环境
vim /etc/profile
#maven home
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export PATH=
P
A
T
H
:
PATH:
PATH:MAVEN_HOME/bin
4.4使刚才配的环境生效
source /etc/profile
4.5 查看maven是否安装成功:mvn –v
5.下载代码:
cd /usr/local/src
git clone -b dev-1.8 http://192.168.*.*/web-wesign/zqsign-web-wesign.git
6.maven下载相关jar包到本地并生成war包:
cd zqsign-web-wesign
mvn install
报错:
解决:修改maven的setting.xml文件,加入以下镜像
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>nexus-releases</id>
<mirrorOf>*</mirrorOf>
<name>Nexus Release Repository</name>
<url>http://192.168.*.*:8081/nexus/content/groups/public/</url>
</mirror>
一个是阿里的镜像,一个是公司私服镜像,如果公司没有私服则不用加。再次运行install成功。
注意一个问题:
这个问题在网上有很多的解决方法,但都没解决我的问题,并且困扰了我很久,最后发现是私服上的jar包没有,从私服下不到造成的。在此记录一下。
7.把war放入tomcat中
7.1 删除之前tomcat中之前的程序
rm -rf /usr/local/tomcat/apache-tomcat-8.5.34/webapps/ROOT/*
7.2把war包解压到ROOT目录下
unzip qsign-web-wesign-1.8.0.war -d /usr/local/tomcat/apache-tomcat-8.5.34/webapps/ROOT/
然后启动tomcat就可以了。
8.环境搭完之后就可以写一个脚本进行以后自动部署的工作了。
8.1.创建脚本
vim bootstrap.sh
8.2脚本内容
cd /usr/local/src/zqsign-web-wesign
#下最新的代码
git pull
#用maven打包
mvn install
#删除tomcat中之前的代码
rm -rf /usr/local/tomcat/apache-tomcatzqsign-web-wesign-8.5.34/webapps/ROOT/*
#把新war包解压到ROOT下
unzip zqsign-web-wesign-1.8.0.war -d /usr/local/tomcat/apache-tomcat-8.5.34/webapps/ROOT/
#重启tomcat
cd /usr/local/tomcat/apache-tomcat-8.5.34/bin
./startup.sh | tail -f ../logs/catalina.out
8.3修改权限:
chmod 775 bootstrap.sh
自测可以运行,此文仅记录自己的所想,有不当之处欢迎提出。