Jenkins+Gitlab+maven项目实战!!!

目录

配置要求:

架构图如下:

前言

一、配置机器

1.先配置gitlab仓库和后台tomcat服务器

gitlab:

 tomcat机器

2.配置jenkins

总结


配置要求:

三台机器

一台jenkins机器

一台gitlab机器(如果本身windows系统内存不够,可选用github/gitee)

一台tomcat机器,作为后台服务器

架构图如下:



前言

Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。 我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交给Jenkins,Jenkins通过给定的代码地址URL(代码仓库地址),将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到Tomcat容器中。

 gatlib:

Jenkins+Gitlab+maven项目实战!!!_第1张图片


一、配置机器

1.先配置gitlab仓库和后台tomcat服务器

gitlab:

[root@gitlab ~]yum -y install gitlab-ce-16.0.4-ce.0.el7.x86_64

 安装成功出现下面页面:

Jenkins+Gitlab+maven项目实战!!!_第2张图片

[root@gitlab ~]vim /etc/gitlab/gitlab.rb

修改内容如下:

external_url 'http://gitlab机器ip'
#地区改为亚洲上海
gitlab_rails['time_zone'] = 'Asia/Shanghai'

 将数据路径的注释去掉

Jenkins+Gitlab+maven项目实战!!!_第3张图片

开启ssh服务

Jenkins+Gitlab+maven项目实战!!!_第4张图片

 做完上面的操作后执行:

#重新加载gitlab的配置文件
[root@gitlab ~] gitlab-ctl reconfigure

第一次加载配置文件比较慢,大概等待10分钟左右,出现下面页面即为成功

Jenkins+Gitlab+maven项目实战!!!_第5张图片

执行下面代码查看密码

 [root@gitlab ~] cat /etc/gitlab/initial_root_password

 Jenkins+Gitlab+maven项目实战!!!_第6张图片

将密码保存后启动gitlab服务

[root@gitlab ~] gitlab-ctl start

 Jenkins+Gitlab+maven项目实战!!!_第7张图片

 用ip去访问我们的gitlab页面

 Jenkins+Gitlab+maven项目实战!!!_第8张图片

 修改密码

Jenkins+Gitlab+maven项目实战!!!_第9张图片

 Jenkins+Gitlab+maven项目实战!!!_第10张图片

 配置ssh密钥方便下面操作:

Jenkins+Gitlab+maven项目实战!!!_第11张图片

 创建新项目:

Jenkins+Gitlab+maven项目实战!!!_第12张图片

 Jenkins+Gitlab+maven项目实战!!!_第13张图片

这边我已经将项目上传到gitlab中(通过git clone /git add /git commit/git push)

Jenkins+Gitlab+maven项目实战!!!_第14张图片

 tomcat机器

 这边我使用的是jdk1.8和Tomcat8.5.45(自己下载或者加我q发你)

安装jdk

[root@java-tomcat ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@java-tomcat ~]# cd /usr/local/
[root@java-tomcat local]# mv jdk1.8.0_191/ java
 vim /etc/profile
#设置环境变量

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

#刷新配置文件
[root@java-tomcat ~]#source /etc/profile

#验证jdk是否安装成功
[root@java-tomcat ~]#java -version

安装tomcat

[root@java-tomcat ~]# mkdir /data/application -p
[root@java-tomcat ~]# cd /usr/src/
[root@java-tomcat ~]# yum -y install wget
[root@java-tomcat src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.46/bin/apache-tomcat-8.5.46.tar.gz
[root@java-tomcat src]# tar xzf apache-tomcat-8.5.46.tar.gz -C /data/application/
[root@java-tomcat src]# cd /data/application/
[root@java-tomcat application]# mv apache-tomcat-8.5.46/ tomcat

#检测是否安装成功
[root@java-tomcat tomcat]# /data/application/tomcat/bin/version.sh

#启动tomcat
[root@java-tomcat tomcat]# /data/application/tomcat/bin/start.sh

#tomcat上面也需要ssh密钥
[root@java-tomcat tomcat]#ssh-keygen

脚本:(为下面做准备)

#创建目录和脚本:
[root@tomcat ~]# mkdir /opt/script  #创建脚本目录
[root@tomcat ~]# vim app-jenkins.sh   #创建脚本
脚本内容在后面:
[root@tomcat ~]# chmod +x app-jenkins.sh  #添加执行权限
[root@tomcat ~]# mv app-jenkins.sh /opt/script/
脚本内容:
[root@tomcat script]# cat app-jenkins.sh 
#!/usr/bin/bash
#本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。
#================
#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 directory"
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

2.配置jenkins(war包安装,2.346.2版本)

[root@jenkins ~]# tar -xvzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@jenkins ~]# tar -xvzf apache-maven-3.9.2-bin.tar.gz -C /usr/local/
[root@jenkins ~]# tar -xvzf apache-tomcat-8.5.45.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# mv jdk1.8.0_191/ java
[root@jenkins local]# mv apache-tomcat-8.5.45/ tomcat
[root@jenkins local]# rm -rf tomcat/webapps/*
[root@jenkins local]# mv apache-maven-3.9.2/ java/maven
[root@jenkins local]# cd
[root@jenkins ~]# cp jenkins.war /usr/local/tomcat/webapps/


[root@jenkins ~]#yum -y install git

配置环境变量

[root@jenkins ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/java/maven
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME

[root@jenkins ~]# source /etc/profile



[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh

 浏览器输入ip进入jenkins

Jenkins+Gitlab+maven项目实战!!!_第15张图片

 

 Jenkins+Gitlab+maven项目实战!!!_第16张图片

我们选择安装推荐的插件 

 Jenkins+Gitlab+maven项目实战!!!_第17张图片


Jenkins+Gitlab+maven项目实战!!!_第18张图片

Jenkins+Gitlab+maven项目实战!!!_第19张图片

 Jenkins+Gitlab+maven项目实战!!!_第20张图片

Jenkins+Gitlab+maven项目实战!!!_第21张图片

 Jenkins+Gitlab+maven项目实战!!!_第22张图片

 接下来我们安装所需要的插件

 Jenkins+Gitlab+maven项目实战!!!_第23张图片

Jenkins+Gitlab+maven项目实战!!!_第24张图片

Jenkins+Gitlab+maven项目实战!!!_第25张图片

 Jenkins+Gitlab+maven项目实战!!!_第26张图片

 Jenkins+Gitlab+maven项目实战!!!_第27张图片

Jenkins+Gitlab+maven项目实战!!!_第28张图片

 Jenkins+Gitlab+maven项目实战!!!_第29张图片

 Jenkins+Gitlab+maven项目实战!!!_第30张图片

 插件安装完成Jenkins+Gitlab+maven项目实战!!!_第31张图片

 配置邮箱和后代tomcat服务器地址

Jenkins+Gitlab+maven项目实战!!!_第32张图片

 Jenkins+Gitlab+maven项目实战!!!_第33张图片

 Jenkins+Gitlab+maven项目实战!!!_第34张图片

 Jenkins+Gitlab+maven项目实战!!!_第35张图片

 Jenkins+Gitlab+maven项目实战!!!_第36张图片

Jenkins+Gitlab+maven项目实战!!!_第37张图片

 Jenkins+Gitlab+maven项目实战!!!_第38张图片

 Jenkins+Gitlab+maven项目实战!!!_第39张图片

 Jenkins+Gitlab+maven项目实战!!!_第40张图片

 Jenkins+Gitlab+maven项目实战!!!_第41张图片

 Jenkins+Gitlab+maven项目实战!!!_第42张图片

执行ssh-keygen

Jenkins+Gitlab+maven项目实战!!!_第43张图片

 Jenkins+Gitlab+maven项目实战!!!_第44张图片

Jenkins+Gitlab+maven项目实战!!!_第45张图片

Jenkins+Gitlab+maven项目实战!!!_第46张图片

 Jenkins+Gitlab+maven项目实战!!!_第47张图片

 免密(jenkins机器想后端服务器tomcat发送公钥)

Jenkins+Gitlab+maven项目实战!!!_第48张图片

Jenkins+Gitlab+maven项目实战!!!_第49张图片

Jenkins+Gitlab+maven项目实战!!!_第50张图片

配置jdk和maven 

Jenkins+Gitlab+maven项目实战!!!_第51张图片

Jenkins+Gitlab+maven项目实战!!!_第52张图片

 Jenkins+Gitlab+maven项目实战!!!_第53张图片

 Jenkins+Gitlab+maven项目实战!!!_第54张图片

Jenkins+Gitlab+maven项目实战!!!_第55张图片

 Jenkins+Gitlab+maven项目实战!!!_第56张图片

Jenkins+Gitlab+maven项目实战!!!_第57张图片

 Jenkins+Gitlab+maven项目实战!!!_第58张图片

Jenkins+Gitlab+maven项目实战!!!_第59张图片 Jenkins+Gitlab+maven项目实战!!!_第60张图片

Jenkins+Gitlab+maven项目实战!!!_第61张图片

 Jenkins+Gitlab+maven项目实战!!!_第62张图片

 Jenkins+Gitlab+maven项目实战!!!_第63张图片

Jenkins+Gitlab+maven项目实战!!!_第64张图片

 Jenkins+Gitlab+maven项目实战!!!_第65张图片

 Jenkins+Gitlab+maven项目实战!!!_第66张图片

 Jenkins+Gitlab+maven项目实战!!!_第67张图片

 Jenkins+Gitlab+maven项目实战!!!_第68张图片

访问我们的tomcat机器 

 Jenkins+Gitlab+maven项目实战!!!_第69张图片

 总结:

博主q3335873973

你可能感兴趣的:(gitlab,jenkins,java,maven,linux)