更新 java-项目.md
This commit is contained in:
parent
bd90f93fff
commit
936e00abc9
470
java-项目.md
470
java-项目.md
@ -1,235 +1,235 @@
|
|||||||
<h2><center>持续集成-交付-部署-Java 项目</center></h2>
|
<h2><center>持续集成-交付-部署-Java 项目</center></h2>
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|
||||||
## 一:环境
|
## 一:环境
|
||||||
|
|
||||||
| 服务器 | IP地址 | 说明 |
|
| 服务器 | IP地址 | 说明 |
|
||||||
| ------- | --------------- | -------------- |
|
| ------- | --------------- | -------------- |
|
||||||
| GitLab | 192.168.159.136 | 私有仓库 |
|
| GitLab | 192.168.159.136 | 私有仓库 |
|
||||||
| Jenkins | 192.168.159.137 | 自动化部署 |
|
| Jenkins | 192.168.159.137 | 自动化部署 |
|
||||||
| web | 192.168.159.138 | 项目所属服务器 |
|
| web | 192.168.159.138 | 项目所属服务器 |
|
||||||
|
|
||||||
三台服务器相互传ssh私钥
|
三台服务器相互传ssh私钥
|
||||||
|
|
||||||
## 二:GitLab
|
## 二:GitLab
|
||||||
|
|
||||||
### 1. 配置SSH
|
### 1. 配置SSH
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 2. 创建项目
|
### 2. 创建项目
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 三:Jenkins
|
## 三:Jenkins
|
||||||
|
|
||||||
### 1. 安装插件
|
### 1. 安装插件
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
• Maven插件 Maven Integration plugin
|
• Maven插件 Maven Integration plugin
|
||||||
• 发布插件 Deploy to container Plugin
|
• 发布插件 Deploy to container Plugin
|
||||||
• Git 插件 可能已经安装
|
• Git 插件 可能已经安装
|
||||||
• Pipeline Maven Integration:jenkins利用Maven编译,打包所需插件
|
• Pipeline Maven Integration:jenkins利用Maven编译,打包所需插件
|
||||||
• Publish Over SSH:通过ssh连接
|
• Publish Over SSH:通过ssh连接
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. 配置凭证
|
### 2. 配置凭证
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**用户密码模式**
|
**用户密码模式**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**SSH密钥模式**
|
**SSH密钥模式**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 3. 配置SSH
|
### 3. 配置SSH
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Jenkins服务器私钥传给web服务器
|
Jenkins服务器私钥传给web服务器
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 4. jdk git maven配置
|
### 4. jdk git maven配置
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Jenkins服务器安装git
|
Jenkins服务器安装git
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 四:web
|
## 四:web
|
||||||
|
|
||||||
### 1. 拉取仓库
|
### 1. 拉取仓库
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
[root@web ~]# cd /opt
|
[root@web ~]# cd /opt
|
||||||
[root@web opt]# git clone http://192.168.159.136/root/easy-springmvc-maven.git
|
[root@web opt]# git clone http://192.168.159.136/root/easy-springmvc-maven.git
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. 获取测试文件
|
### 2. 获取测试文件
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
[root@web ~]#
|
[root@web ~]#
|
||||||
[root@web ~]# cp -r easy-springmvc-maven-master/* /opt/easy-springmvc-maven/
|
[root@web ~]# cp -r easy-springmvc-maven-master/* /opt/easy-springmvc-maven/
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. 上传代码
|
### 3. 上传代码
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
[root@web easy-springmvc-maven]# git add .
|
[root@web easy-springmvc-maven]# git add .
|
||||||
[root@web easy-springmvc-maven]# git commit -m "first"
|
[root@web easy-springmvc-maven]# git commit -m "first"
|
||||||
[root@web easy-springmvc-maven]# git push
|
[root@web easy-springmvc-maven]# git push
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. 安装jdk tomcat
|
### 4. 安装jdk tomcat
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
[root@web ~]# tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local/
|
[root@web ~]# tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local/
|
||||||
[root@web ~]# ln -s /usr/local/jdk1.8.0_211/ /usr/local/jdk8
|
[root@web ~]# ln -s /usr/local/jdk1.8.0_211/ /usr/local/jdk8
|
||||||
[root@web ~]# vim /etc/profile
|
[root@web ~]# vim /etc/profile
|
||||||
JAVA_HOME=/usr/local/jdk8
|
JAVA_HOME=/usr/local/jdk8
|
||||||
MAVEN_HOME=/usr/local/maven
|
MAVEN_HOME=/usr/local/maven
|
||||||
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
|
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
|
||||||
export PATH JAVA_HOME MAVEN_HOME
|
export PATH JAVA_HOME MAVEN_HOME
|
||||||
|
|
||||||
[root@web ~]# source /etc/profile
|
[root@web ~]# source /etc/profile
|
||||||
[root@web ~]# mkdir -p /data/application
|
[root@web ~]# mkdir -p /data/application
|
||||||
[root@web ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.104/bin/apache-tomcat-9.0.104.tar.gz
|
[root@web ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.104/bin/apache-tomcat-9.0.104.tar.gz
|
||||||
[root@web ~]# tar xf apache-tomcat-9.0.104.tar.gz -C /data/application/
|
[root@web ~]# tar xf apache-tomcat-9.0.104.tar.gz -C /data/application/
|
||||||
[root@web ~]# mv /data/application/apache-tomcat-9.0.104/ /data/application/tomcat
|
[root@web ~]# mv /data/application/apache-tomcat-9.0.104/ /data/application/tomcat
|
||||||
[root@web ~]# vim /data/application/tomcat/conf/server.xml
|
[root@web ~]# vim /data/application/tomcat/conf/server.xml
|
||||||
取消8009的注释
|
取消8009的注释
|
||||||
<!-- Define an AJP 1.3 Connector on port 8009 -->
|
<!-- Define an AJP 1.3 Connector on port 8009 -->
|
||||||
<Connector protocol="AJP/1.3"
|
<Connector protocol="AJP/1.3"
|
||||||
address="::1"
|
address="::1"
|
||||||
port="8009"
|
port="8009"
|
||||||
redirectPort="8443"
|
redirectPort="8443"
|
||||||
maxParameterCount="1000"
|
maxParameterCount="1000"
|
||||||
/>
|
/>
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. 编写脚本
|
### 5. 编写脚本
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
[root@web ~]# vim /opt/jenkins.sh
|
[root@web ~]# vim /opt/jenkins.sh
|
||||||
#!/usr/bin/bash
|
#!/usr/bin/bash
|
||||||
|
|
||||||
#Defining variables
|
#Defining variables
|
||||||
export JAVA_HOME=/usr/local/java
|
export JAVA_HOME=/usr/local/java
|
||||||
webapp_path="/data/application/tomcat/webapps"
|
webapp_path="/data/application/tomcat/webapps"
|
||||||
tomcat_run="/data/application/tomcat/bin"
|
tomcat_run="/data/application/tomcat/bin"
|
||||||
updata_path="/data/update/`date +%F-%T`"
|
updata_path="/data/update/`date +%F-%T`"
|
||||||
backup_path="/data/backup/`date +%F-%T`"
|
backup_path="/data/backup/`date +%F-%T`"
|
||||||
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
|
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
|
||||||
files_dir="easy-springmvc-maven"
|
files_dir="easy-springmvc-maven"
|
||||||
files="easy-springmvc-maven.war"
|
files="easy-springmvc-maven.war"
|
||||||
job_path="/root/upload"
|
job_path="/root/upload"
|
||||||
|
|
||||||
#Preparation environment
|
#Preparation environment
|
||||||
echo "Creating related directory"
|
echo "Creating related directory"
|
||||||
mkdir -p $updata_path
|
mkdir -p $updata_path
|
||||||
mkdir -p $backup_path
|
mkdir -p $backup_path
|
||||||
|
|
||||||
echo "Move the uploaded war package to the update 2directory"
|
echo "Move the uploaded war package to the update 2directory"
|
||||||
mv $job_path/$files $updata_path
|
mv $job_path/$files $updata_path
|
||||||
|
|
||||||
echo "========================================================="
|
echo "========================================================="
|
||||||
cd /opt
|
cd /opt
|
||||||
echo "Backing up java project"
|
echo "Backing up java project"
|
||||||
if [ -f $webapp_path/$files ];then
|
if [ -f $webapp_path/$files ];then
|
||||||
tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
|
tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
|
||||||
if [ $? -ne 0 ];then
|
if [ $? -ne 0 ];then
|
||||||
echo "打包失败,自动退出"
|
echo "打包失败,自动退出"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Checking if tomcat is started"
|
echo "Checking if tomcat is started"
|
||||||
if [ -n "$tomcat_pid" ];then
|
if [ -n "$tomcat_pid" ];then
|
||||||
kill -9 $tomcat_pid
|
kill -9 $tomcat_pid
|
||||||
if [ $? -ne 0 ];then
|
if [ $? -ne 0 ];then
|
||||||
echo "tomcat关闭失败,将会自动退出"
|
echo "tomcat关闭失败,将会自动退出"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
cd $webapp_path
|
cd $webapp_path
|
||||||
rm -rf $files && rm -rf $files_dir
|
rm -rf $files && rm -rf $files_dir
|
||||||
cp $updata_path/$files $webapp_path
|
cp $updata_path/$files $webapp_path
|
||||||
cd /opt
|
cd /opt
|
||||||
$tomcat_run/startup.sh
|
$tomcat_run/startup.sh
|
||||||
sleep 5
|
sleep 5
|
||||||
echo "显示tomcat的pid"
|
echo "显示tomcat的pid"
|
||||||
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
|
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
|
||||||
echo "tomcat startup"
|
echo "tomcat startup"
|
||||||
echo "请手动查看tomcat日志。脚本将会自动退出"
|
echo "请手动查看tomcat日志。脚本将会自动退出"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "Checking if tomcat is started"
|
echo "Checking if tomcat is started"
|
||||||
if [ -n "$tomcat_pid" ];then
|
if [ -n "$tomcat_pid" ];then
|
||||||
kill -9 $tomcat_pid
|
kill -9 $tomcat_pid
|
||||||
if [ $? -ne 0 ];then
|
if [ $? -ne 0 ];then
|
||||||
echo "tomcat关闭失败,将会自动退出"
|
echo "tomcat关闭失败,将会自动退出"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
cp $updata_path/$files $webapp_path
|
cp $updata_path/$files $webapp_path
|
||||||
$tomcat_run/startup.sh
|
$tomcat_run/startup.sh
|
||||||
sleep 5
|
sleep 5
|
||||||
echo "显示tomcat的pid"
|
echo "显示tomcat的pid"
|
||||||
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
|
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
|
||||||
echo "tomcat startup"
|
echo "tomcat startup"
|
||||||
echo "请手动查看tomcat日志。脚本将会自动退出"
|
echo "请手动查看tomcat日志。脚本将会自动退出"
|
||||||
fi
|
fi
|
||||||
[root@web ~]# chmod +x /opt/jenkins
|
[root@web ~]# chmod +x /opt/jenkins
|
||||||
```
|
```
|
||||||
|
|
||||||
## 五:jenkins创建项目
|
## 五:jenkins创建项目
|
||||||
|
|
||||||
### 1. 创建项目
|
### 1. 创建项目
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 2. 构建
|
### 2. 构建
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
Loading…
x
Reference in New Issue
Block a user