0


2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

自动化部署springboot项目

0.简介

如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整

1.自动化部署所需软件安装

1. jdk,分别为1.8和17,根据自身项目决定,如果项目已经使用17则可以只安装17
1.8是项目使用,17是Jenkins使用

2.git选择2.X

3.maven3.6

4.gitlab12.0.2

5.Jenkins选择2.389

6.服务器centos7

2.软件安装

2.0 CentOs安装

2.0.1 下载VM虚拟机

我直接电脑管家下载,也可以官网下载,懒的麻烦直接电脑管家下载,至于想永久免费使用,可以直接百度爸爸,这里不过多赘述,傻瓜式安装无限下一步即可
在这里插入图片描述

2.0.2 下载CentOs镜像
直接阿里云下载: https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
直接选择最小化镜像: CentOS-7-x86_64-Minimal-2009.iso

在这里插入图片描述

2.0.3 开始安装CentOs

打开VM软件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装三个软件
net-tools以及wget
yum install net-tools -y  方便使用ifconfig 查看服务器ip
yum installwget -y  方便后续直接wget下载软件
yum install vim -y 文本编辑器

clear
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Linux连接工具,可以使用 xShell,我使用的是electerm

electerm下载地址: https://github.com/electerm/electerm/releases/tag/v1.25.41
 GitHub下载,对网络有一定要求
 下载完成傻瓜式安装,无限下一步即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此服务器准备完毕

2.1 安装jdk

在这里插入图片描述
在这里插入图片描述

配置jdk环境变量时,选择项目版本的jdk配置环境变量,注意jdk解压位置,路径别写错,更别写我的路径你的路径可能和我的不一样

1.下载jdk wget下载或直接下载ftps上传到服务器,此处直接下载后上传到服务器
没有安装wget直接使用 
yum install -y wget 安装确保服务器有网  wget 软件下载路径

2.解压jdk压缩包
创建一个目录存放jdk
mkdir /usr/local/java
将jdk解压到该目录
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/java/
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java/
进入jdk解压目录
cd /usr/local/java/
ll 指令查看当前目录下文件

3.配置环境变量,此处配置jdk8
vim /etc/profile

进入文件按 i 进入编辑模式

#文件末尾添加以下内容export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

编辑完按 esc 退出编辑模式 按 : 输入 wq  保存退出 

在这里插入图片描述

4.从新读取profile文件
source /etc/profile

在这里插入图片描述

2.2 安装git

0. 如果已安装git,此步骤可以直接跳过,如果想更换git版本也可以跟着一起从新安装
1.卸载git
yum remove git

2.安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y

3.下载git,wget默认将文件下载在当前所处目录,或者直接下载tar包sftp传入Linux
cd ~ 进入当前用户家目录或者  cd /root ,即/root目录,因为当前登陆用户是root
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz --no-check-certificate

4.解压到当前目录
tar -zxvf git-2.9.3.tar.gz 

5.配置安装路径
 cd git-2.9.3
 
./configure prefix=/usr/local/git/

6.编译安装
make&&makeinstall

7.配置环境变量
echo"export PATH=$PATH:/usr/local/git/bin">> /etc/profile

刷新配置
source /etc/profile

或者

vi /etc/profile

export PATH=$PATH:/usr/local/git/bin

source /etc/profile
 
8.查看git版本
git --version

9.初始化git信息,此处配置的邮箱都是后续gitlab用户的邮箱
git config --global user.name "xkcyyds"git config --global user.email "[email protected]"

生成秘钥,直接一路回车即可
ssh-keygen -t rsa -C "[email protected]"

查看公钥
cat ~/.ssh/id_rsa.pub

2.3 安装maven

1.下载maven
wget https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz --no-check-certificate
该路径无效情况下可以直接去官网下载,或者拿到下载地址在服务器使用wget下载,目前我这个是有效的地址
--no-check-certificate用于去掉证书验证 因为https所以需要去掉

2.解压
创建目录
mkdir /usr/local/maven 存放maven
mkdir /usr/local/maven/repo 用于存放maven下载的依赖包
解压指定文件夹
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/maven/

3.修改配置文件 设置本地仓库以及阿里云仓库以及指定jdk版本
vim /usr/local/maven/apache-maven-3.6.3/conf/settings.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<localRepository>/usr/local/maven/repo</localRepository><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url></mirror><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile>
4.配置maven环境变量
vim /etc/profile

文件最后添加如下内容
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

5.刷新配置文件
source /etc/profile

查看maven版本,成功输出信息则maven环境变量配置成功
mvn --version

2.4 安装gitlab

1. 安装gitlab需要的组件
yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python

2. postfix启动邮件服务以及设置自启 根据需要选择是否开启 我没有开启 不开启可以跳到第三步
systemctl start postfix
systemctl enable postfix

当启动时报:
Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe"for details.

2.1 先修改postfix中/etc/postfix/main.cf配置文件
inet_protocols = ipv4
inet_interfaces = all

postfix check 检测文件,检测报错则安装下面依赖

2.2 修改完毕后依然报错,此时需要安装依赖,MySQL5.5使用该方式,5.7使用下面的方式
wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

从新启动依然报错则是因为数据库版本问题,5.7MySQL自带libmysqlclient.so.20,而我们需要的是libmysqlclient.so.18

2.3 下载安装mysql依赖
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community

2.4再次启动可以成功

3. 下载gitlab
回到用户家目录 cd ~
下载软件
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm --no-check-certificate

不加--no-check-certificate 可能会导致下载失败

4. 本地yum安装
yum -y localinstall gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm

5. 配置gitlab访问地址 http://192.168.56.137为你自身服务器ip, 查看ip指令 ifconfigsed -i "/^external_url/cexternal_url 'http://192.168.56.137'" /etc/gitlab/gitlab.rb

6. 修改gitlab访问端口,默认端口可能其他服务占用,可以自己指定访问端口
vim /etc/gitlab/gitlab.rb
修改 nginx['listen_port']= 6868 (指定端口)

重置:gitlab-ctl reconfigure 重置会有点慢,耐心等一下

重置以后该文件监听端口也会改变,未改变需要手动改变一下
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
listen *: 6868 (指定端口是上面的端口)

gitlab-ctl restart 重启

gitlab-ctl tail 指令可以查看gitlab启动信息

7.访问
关闭防火墙或者放行端口6868,为了方便此处直接关闭防火墙
阿里云服务器需要登陆管理界面添加规则放行6868端口,此处不做演示
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
ip:port
http://192.168.56.137:6868/

访问成功以后需要先设置密码
设置完密码后使用root账号加刚刚设置的密码登陆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.1 配置gitlab以及项目创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
进入目录后直接右键打开git bash界面
在这里插入图片描述

拉取仓库,注意地址后一定跟上端口否则拉取不了
git clone http://192.168.56.137:6868/root/demo.git

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. 配置邮件报警 可以不配置 根据情况自己选择 我没有配置,需要配置的需要进行步骤2操作
vim /etc/gitlab/gitlab.rb  57行以后

gitlab_rails['smtp_enable']=true
gitlab_rails['smtp_address']='smtp.qq.com'# SMTP 服务器
gitlab_rails['smtp_port']= 465 
# SMTP 服务器端口号
gitlab_rails['smtp_user_name']='[email protected]'# 邮件账号
gitlab_rails['smtp_password']=''# 邮件授权码
gitlab_rails['smtp_authentication']='login'
gitlab_rails['smtp_enable_starttls_auto']=true
gitlab_rails['smtp_tls']=true
gitlab_rails['gitlab_email_from']='[email protected]'
阿里云服务器访问gitlab的502问题,阿里云服务器默认开启交换分区
开启交换分区即可

dd if=/dev/zero of=/mnt/swap bs=512 count=8388616

mkswap /mnt/swap

vim /etc/sysctl.conf
修改vm.swappiness = 60 默认数值是0

swapon /mnt/swap

echo"/data/swap swap swap defaults 0 0">> /etc/fstab

cat /proc/swaps 查看是否成功挂载

free 再次查看交换分区是否开启成功

2.5 安装Jenkins

0.rpm包下载位置,请注意版本,版本太低会导致后续安装不了插件
此处选择的版本没有问题,但是需要jdk11及以上,所以上述安装了两个jdk版本
https://mirrors.jenkins-ci.org/redhat/

1.下载Jenkins的RPM包,速度根据自身有快慢
wget https://mirrors.jenkins-ci.org/redhat/jenkins-2.389-1.1.noarch.rpm --no-check-certificate
2.安装
rpm -ivh jenkins-2.389-1.1.noarch.rpm

3.修改配置
vim /etc/sysconfig/jenkins

JENKINS_USER="root"#这里改为root
JENKINS_PORT="9898"#配置访问端口

4.关闭防火墙或者开启8088端口

5.配置jdk
vim /etc/init.d/jenkins 
在 candidates 内容最后添加本地安装jdk,必须11版本以上,该处选择17版本
该路径是你自己安装jdk的路径,如果路径和我一样可以直接复制
/usr/local/java/jdk-17.0.7

在这里插入图片描述
在这里插入图片描述

6.从新读取配置文件
systemctl daemon-reload

7.启动Jenkins
systemctl start jenkins

从新启动Jenkins指令:
systemctl restart jenkins

配置完启动不起来,报如下错误:
Job for jenkins.service failed because the control process exited with 
error code. See "systemctl status jenkins.service" and "journalctl -xe"for details.

可以不使用systemctl的方式去启动暂停Jenkins,直接用Jenkins自带的服务启动
其实systemctl最终也是执行的这个命令
cd /etc/init.d
# 从新启动
./jenkins restart
# 停止
./jenkins stop
# 状态
./jenkins status

9.访问
ip:port
192.168.56.137:9898

访问报如下错误:
AWT is not properly configured on this server. Perhaps you need to run 
your container with “-Djava.awt.headless=true”? See also: 
https://jenkins.io/redirect/troubleshooting/java.awt.headless

在这里插入图片描述

解决方案:
yum install -y dejavu-sans-fonts
yum install -y fontconfig
yum install -y xorg-x11-server-Xvfb

从新读取配置文件
systemctl daemon-reload

从新启动,确保在 /etc/init.d  执行该指令 从新启动后再次刷新访问
./jenkins restart

在这里插入图片描述
在这里插入图片描述


10.查看Jenkins密码
cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


11.修改插件下载地址
sed -i 's/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json &&sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

在这里插入图片描述

12.进入 Manage Jenkins -> Manage Plugin -> Advanced 最下面有 Update Site 设置为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

13.重启Jenkins
ip:8088/restart

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.汉化Jenkins
Manage Jenkins -> Manage Plugin -> available
输入 Localization: Chinese (Simplified)
点击:install without restart

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.安装自动化部署所需插件
// git插件
Git client
// gitlab插件
GitLab
// ssh插件
SSH Credentials
// maven插件
Maven Integration

在这里插入图片描述
直接点击 安装完成后… 几个字即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
http的git地址一定加上端口
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意修改jar包的名称,可以直接将该脚本放在服务器,使用 bash /root/脚本名称 该处直接运行脚本
在这里插入图片描述
jarPath=/var/lib/jenkins/workspace/demo/target/ 是Jenkins构建后jar生成的位置
脚本这里自己注意修改一下

#!/bin/bash
workPath=/usr/local/project/test/
jarPath=/var/lib/jenkins/workspace/test/target/
jarName=test-0.0.1-SNAPSHOT.jar
mkdir -vp $workPathecho"==========创建工作空间=========="chmod 755 $workPath
pid=`ps -ef |grep test-0.0.1-SNAPSHOT.jar |grep -v grep|awk'{print $2}'`if[ -n "$pid"]thenkill -9 $pidecho"==========杀死存在进程=========="fiecho$workPath$jarNameecho$jarPath$jarNameif[ -e $workPath$jarName];thenecho"==========启动文件存在, 执行删除启动文件=========="rm -rf $workPath$jarNameelseecho"==========启动文件不存在=========="fiif[ -e $jarPath$jarName];thencp$jarPath$jarName$workPathecho"==========目标文件存在, 执行拷贝启动文件=========="elseecho"==========目标文件不存在=========="ficd$workPathexport BUILD_ID=dontKillMe
echo"==========执行启动demo服务=========="nohup java -jar test-0.0.1-SNAPSHOT.jar  > test-logs.log 2>&1 &echo"==========启动成功demo服务=========="
16.如何卸载Jenkins
rpm -e jenkins
rpm -ql jenkins
find / -iname jenkins |xargs -n 1000 rm -rf

17.升级Jenkins
17.0关闭Jenkins服务
systemctl stop jenkins
systemctl status jenkins 

17.1下载war包 
https://mirrors.tuna.tsinghua.edu.cn/jenkins/war

17.2查找服务器Jenkinswar位置
find / -name jenkins.war

17.3进入war所在位置
cd /usr/lib/jenkins/

17.4将war移动到其他目录
mkdir /root/jenkins

17.5将下载的war包放入该文件
mv /root/jenkins.war ./

17.6启动服务
systemctl start jenkins

17.7注意Jenkins版本与jdk对应版本,否则启动失败

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我码的累你看的也累,一键三连支持一下,谢谢大家了,不好的地方也欢迎大家指出,码字不易转载请注明出处


本文转载自: https://blog.csdn.net/LC159159/article/details/130832194
版权归原作者 南 艺 所有, 如有侵权,请联系我们删除。

“2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程”的评论:

还没有评论