CI-CD/java-项目.md
2025-04-28 22:36:46 +08:00

6.7 KiB
Raw Blame History

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


一:环境

服务器 IP地址 说明
GitLab 192.168.159.136 私有仓库
Jenkins 192.168.159.137 自动化部署
web 192.168.159.138 项目所属服务器

三台服务器相互传ssh私钥

GitLab

1. 配置SSH

2. 创建项目

Jenkins

1. 安装插件

• Maven插件 Maven Integration plugin
• 发布插件 Deploy to container Plugin
• Git 插件  可能已经安装
• Pipeline Maven Integration:jenkins利用Maven编译打包所需插件
• Publish Over SSH:通过ssh连接

2. 配置凭证

用户密码模式

SSH密钥模式

3. 配置SSH

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

4. jdk git maven配置

Jenkins服务器安装git

web

1. 拉取仓库

[root@web ~]# cd /opt
[root@web opt]# git clone http://192.168.159.136/root/easy-springmvc-maven.git

2. 获取测试文件

[root@web ~]# wget http://182.92.143.66:40072/directlink/img/java-demo/easy-springmvc-maven-master.zip
[root@web ~]# cp -r easy-springmvc-maven-master/* /opt/easy-springmvc-maven/

3. 上传代码

[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

[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的注释
	<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               />

5. 编写脚本

[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. 创建项目

2. 构建