diff --git a/java-项目.md b/java-项目.md index 5c083ae..31f9a62 100644 --- a/java-项目.md +++ b/java-项目.md @@ -1,235 +1,235 @@ -

持续集成-交付-部署-Java 项目

- ------- - -## 一:环境 - -| 服务器 | IP地址 | 说明 | -| ------- | --------------- | -------------- | -| GitLab | 192.168.159.136 | 私有仓库 | -| Jenkins | 192.168.159.137 | 自动化部署 | -| web | 192.168.159.138 | 项目所属服务器 | - -三台服务器相互传ssh私钥 - -## 二:GitLab - -### 1. 配置SSH - -![](accents\image-202504280075.png) - -![](accents\image-202504280076.png) - -![](accents\image-202504280077.png) - -### 2. 创建项目 - -![](accents\image-202504280078.png) - -![](accents\image-202504280079.png) - -![](accents\image-202504280080.png) - -![](accents\image-202504280081.png) - -## 三:Jenkins - -### 1. 安装插件 - -```bash -• Maven插件 Maven Integration plugin -• 发布插件 Deploy to container Plugin -• Git 插件 可能已经安装 -• Pipeline Maven Integration:jenkins利用Maven编译,打包所需插件 -• Publish Over SSH:通过ssh连接 -``` - -### 2. 配置凭证 - -![](accents\image-202504280062.png) - -![](accents\image-202504280063.png) - -![](accents\image-202504280064.png) - -![](accents\image-202504280065.png) - -**用户密码模式** - -![](accents\image-202504280066.png) - -**SSH密钥模式** - -![](accents\image-202504280067.png) - -### 3. 配置SSH - -![](accents\image-202504280068.png) - -Jenkins服务器私钥传给web服务器 - -![](accents\image-202504280069.png) - -![](accents\image-202504280070.png) - -### 4. jdk git maven配置 - -![](accents\image-202504280071.png) - -![](accents\image-202504280072.png) - -Jenkins服务器安装git - -![](accents\image-202504280073.png) - -![](accents\image-202504280074.png) - -## 四:web - -### 1. 拉取仓库 - -![](accents\image-202504280082.png) - -```bash -[root@web ~]# cd /opt -[root@web opt]# git clone http://192.168.159.136/root/easy-springmvc-maven.git -``` - -### 2. 获取测试文件 - -```bash -[root@web ~]# -[root@web ~]# cp -r easy-springmvc-maven-master/* /opt/easy-springmvc-maven/ -``` - -### 3. 上传代码 - -```bash -[root@web easy-springmvc-maven]# git add . -[root@web easy-springmvc-maven]# git commit -m "first" -[root@web easy-springmvc-maven]# git push -``` - -### 4. 安装jdk tomcat - -```bash -[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 ~]# vim /etc/profile -JAVA_HOME=/usr/local/jdk8 -MAVEN_HOME=/usr/local/maven -PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin -export PATH JAVA_HOME MAVEN_HOME - -[root@web ~]# source /etc/profile -[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 ~]# 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 ~]# vim /data/application/tomcat/conf/server.xml -取消8009的注释 - - -``` - -### 5. 编写脚本 - -```bash -[root@web ~]# vim /opt/jenkins.sh -#!/usr/bin/bash - -#Defining variables -export JAVA_HOME=/usr/local/java -webapp_path="/data/application/tomcat/webapps" -tomcat_run="/data/application/tomcat/bin" -updata_path="/data/update/`date +%F-%T`" -backup_path="/data/backup/`date +%F-%T`" -tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'` -files_dir="easy-springmvc-maven" -files="easy-springmvc-maven.war" -job_path="/root/upload" - -#Preparation environment -echo "Creating related directory" -mkdir -p $updata_path -mkdir -p $backup_path - -echo "Move the uploaded war package to the update 2directory" -mv $job_path/$files $updata_path - -echo "=========================================================" -cd /opt -echo "Backing up java project" -if [ -f $webapp_path/$files ];then - tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path - if [ $? -ne 0 ];then - echo "打包失败,自动退出" - exit 1 - else - echo "Checking if tomcat is started" - if [ -n "$tomcat_pid" ];then - kill -9 $tomcat_pid - if [ $? -ne 0 ];then - echo "tomcat关闭失败,将会自动退出" - exit 2 - fi - fi - cd $webapp_path - rm -rf $files && rm -rf $files_dir - cp $updata_path/$files $webapp_path - cd /opt - $tomcat_run/startup.sh - sleep 5 - echo "显示tomcat的pid" - echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`" - echo "tomcat startup" - echo "请手动查看tomcat日志。脚本将会自动退出" - fi -else - echo "Checking if tomcat is started" - if [ -n "$tomcat_pid" ];then - kill -9 $tomcat_pid - if [ $? -ne 0 ];then - echo "tomcat关闭失败,将会自动退出" - exit 2 - fi - fi - cp $updata_path/$files $webapp_path - $tomcat_run/startup.sh - sleep 5 - echo "显示tomcat的pid" - echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`" - echo "tomcat startup" - echo "请手动查看tomcat日志。脚本将会自动退出" -fi -[root@web ~]# chmod +x /opt/jenkins -``` - -## 五:jenkins创建项目 - -### 1. 创建项目 - -![](accents\image-202504280083.png) - -![](accents\image-202504280084.png) - -![](accents\image-202504280085.png) - -![](accents\image-202504280086.png) - -![](accents\image-202504280087.png) - -![](accents\image-202504280088.png) - -![](accents\image-202504280089.png) - -### 2. 构建 - -![](accents\image-202504280090.png) - -![](accents\image-202504280091.png) +

持续集成-交付-部署-Java 项目

+ +------ + +## 一:环境 + +| 服务器 | IP地址 | 说明 | +| ------- | --------------- | -------------- | +| GitLab | 192.168.159.136 | 私有仓库 | +| Jenkins | 192.168.159.137 | 自动化部署 | +| web | 192.168.159.138 | 项目所属服务器 | + +三台服务器相互传ssh私钥 + +## 二:GitLab + +### 1. 配置SSH + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280075.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280076.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280077.png) + +### 2. 创建项目 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280078.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280079.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280080.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280081.png) + +## 三:Jenkins + +### 1. 安装插件 + +```bash +• Maven插件 Maven Integration plugin +• 发布插件 Deploy to container Plugin +• Git 插件 可能已经安装 +• Pipeline Maven Integration:jenkins利用Maven编译,打包所需插件 +• Publish Over SSH:通过ssh连接 +``` + +### 2. 配置凭证 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280062.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280063.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280064.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280065.png) + +**用户密码模式** + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280066.png) + +**SSH密钥模式** + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280067.png) + +### 3. 配置SSH + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280068.png) + +Jenkins服务器私钥传给web服务器 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280069.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280070.png) + +### 4. jdk git maven配置 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280071.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280072.png) + +Jenkins服务器安装git + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280073.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280074.png) + +## 四:web + +### 1. 拉取仓库 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280082.png) + +```bash +[root@web ~]# cd /opt +[root@web opt]# git clone http://192.168.159.136/root/easy-springmvc-maven.git +``` + +### 2. 获取测试文件 + +```bash +[root@web ~]# +[root@web ~]# cp -r easy-springmvc-maven-master/* /opt/easy-springmvc-maven/ +``` + +### 3. 上传代码 + +```bash +[root@web easy-springmvc-maven]# git add . +[root@web easy-springmvc-maven]# git commit -m "first" +[root@web easy-springmvc-maven]# git push +``` + +### 4. 安装jdk tomcat + +```bash +[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 ~]# vim /etc/profile +JAVA_HOME=/usr/local/jdk8 +MAVEN_HOME=/usr/local/maven +PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin +export PATH JAVA_HOME MAVEN_HOME + +[root@web ~]# source /etc/profile +[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 ~]# 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 ~]# vim /data/application/tomcat/conf/server.xml +取消8009的注释 + + +``` + +### 5. 编写脚本 + +```bash +[root@web ~]# vim /opt/jenkins.sh +#!/usr/bin/bash + +#Defining variables +export JAVA_HOME=/usr/local/java +webapp_path="/data/application/tomcat/webapps" +tomcat_run="/data/application/tomcat/bin" +updata_path="/data/update/`date +%F-%T`" +backup_path="/data/backup/`date +%F-%T`" +tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'` +files_dir="easy-springmvc-maven" +files="easy-springmvc-maven.war" +job_path="/root/upload" + +#Preparation environment +echo "Creating related directory" +mkdir -p $updata_path +mkdir -p $backup_path + +echo "Move the uploaded war package to the update 2directory" +mv $job_path/$files $updata_path + +echo "=========================================================" +cd /opt +echo "Backing up java project" +if [ -f $webapp_path/$files ];then + tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path + if [ $? -ne 0 ];then + echo "打包失败,自动退出" + exit 1 + else + echo "Checking if tomcat is started" + if [ -n "$tomcat_pid" ];then + kill -9 $tomcat_pid + if [ $? -ne 0 ];then + echo "tomcat关闭失败,将会自动退出" + exit 2 + fi + fi + cd $webapp_path + rm -rf $files && rm -rf $files_dir + cp $updata_path/$files $webapp_path + cd /opt + $tomcat_run/startup.sh + sleep 5 + echo "显示tomcat的pid" + echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`" + echo "tomcat startup" + echo "请手动查看tomcat日志。脚本将会自动退出" + fi +else + echo "Checking if tomcat is started" + if [ -n "$tomcat_pid" ];then + kill -9 $tomcat_pid + if [ $? -ne 0 ];then + echo "tomcat关闭失败,将会自动退出" + exit 2 + fi + fi + cp $updata_path/$files $webapp_path + $tomcat_run/startup.sh + sleep 5 + echo "显示tomcat的pid" + echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`" + echo "tomcat startup" + echo "请手动查看tomcat日志。脚本将会自动退出" +fi +[root@web ~]# chmod +x /opt/jenkins +``` + +## 五:jenkins创建项目 + +### 1. 创建项目 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280083.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280084.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280085.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280086.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280087.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280088.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280089.png) + +### 2. 构建 + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280090.png) + +![](http://182.92.143.66:40072/directlink/img/CI-CD/image-202504280091.png)