Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大项目。Git是Linus Torvalds为帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git与常用的版本控制工具CVS、Subversion等不同,它采用分布式版本库的方式,不必服务器端软件支持。

友情提示

代码上线流程中默认大家有root权限!!!!
方便大家模拟项目上线流程,实际生产环境中大家要特别注意!
训练也是为了实战!时刻想着实战,养成良好习惯!切记!规范!
不听老人言吃亏在眼前!罚款、翻车、遭白眼!


1:java项目代码上线架构图

14410242-4561d39148f668ec.png

ip地址及主机名规划

10.0.0.11 deploy

10.0.0.12 tomcat-web01

10.0.0.13 git.azkaban.com

2:部署gitlab服务器并上传代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.4.5-ce.0.el7.x86_64.rpm

yum localinstall gitlab-ce-11.4.5-ce.0.el7.x86_64.rpm -y

vim /etc/gitlab/gitlab.rb

external_url 'http://git.azkaban.com'

gitlab-ctl reconfigure

上传项目代码到gitlab

rz jeesns.tar.gz

tar xf jeesns.tar.gz

cd jeesns/

rm -fr .git*

git init

git remote add origin http://git.azkaban.com/root/jeesns.git

git add *

git commit -m '初始提交'

git push -u origin master

#### 3:部署tomcat服务器和数据库

rz jdk-8u102-linux-x64.rpm

rz apache-tomcat-8.0.27.tar.gz

rpm -ivh jdk-8u102-linux-x64.rpm

mkdir /application/

tar zvxf apache-tomcat-8.0.27.tar.gz -C /application/

mv /application/apache-tomcat-8.0.27 /application/tomcat

#tomcat启动加速的方法

vim /usr/java/jdk1.8.0_102/jre/lib/security/java.security

修改117行为:securerandom.source=file:/dev/urandom

/application/tomcat/bin/startup.sh

为项目准备好数据库jeesns,设置数据库root用户密码为root

yum install mariadb-server -y

mysql_secure_installation

mysqladmin -uroot password 'root'

mysql -uroot -proot -e 'create database jeesns;'

#### 4:安装maven

rz jdk-8u102-linux-x64.rpm

rpm -ivh jdk-8u102-linux-x64.rpm

wget https://mirror.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

tar xf apache-maven-3.6.0-bin.tar.gz

mv apache-maven-3.6.0 /usr/local/

ln -s /usr/local/apache-maven-3.6.0 /usr/local/maven

vim /etc/profile

export M2_HOME=/usr/local/maven

export PATH=${M2_HOME}/bin:$PATH

source /etc/profile

mvn -v

#### 5:编译和部署(上线)

a:代码拉取

#需要在gitlab中添加密钥对

git clone git@git.azkaban.com:root/jeesns.git

b:编译项目代码

cd jeesns/

mvn clean package

c:数据库升级

yum install sshpass -y

sshpass -p123456 scp /opt/jeesns/jeesns-web/database/jeesns.sql root@10.0.0.12:/tmp

sshpass -p123456 ssh root@10.0.0.12 'mysql -uroot -proot jeesns </tmp/jeesns.sql'

d:远程推送war包

sshpass -p123456 ssh root@10.0.0.12 'mv /application/tomcat/webapps/* /opt'

sshpass -p123456 scp -rp /opt/jeesns/jeesns-web/target/jeesns-web.war 10.0.0.12:/application/tomcat/webapps/ROOT.war

测试访问:

14410242-2cb0b40746215b46.png

把上面的第五步(编译和部署)用Shell脚本来实现,这个脚本就是Shell自动化上线脚本

把上面的第五步用jenkins来实现,即jenkins+gitlab代码自动上线。

评论