失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

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

时间:2021-08-07 05:42:29

相关推荐

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

自动化部署springboot项目

0.简介

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

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

1. jdk,分别为1.8和17,根据自身项目决定,如果项目已经使用17则可以只安装171.8是项目使用,17是Jenkins使用2.git选择2.X3.maven3.64.gitlab12.0.25.Jenkins选择2.3896.服务器centos7

2.软件安装

2.0 CentOs安装

2.0.1 下载VM虚拟机

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

2.0.2 下载CentOs镜像

直接阿里云下载: /centos/7.9./isos/x86_64/直接选择最小化镜像: CentOS-7-x86_64-Minimal-.iso

2.0.3 开始安装CentOs

打开VM软件

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

Linux连接工具,可以使用 xShell,我使用的是electerm

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

至此服务器准备完毕

2.1 安装jdk

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

1.下载jdk wget下载或直接下载ftps上传到服务器,此处直接下载后上传到服务器没有安装wget直接使用 yum install -y wget 安装确保服务器有网 wget 软件下载路径2.解压jdk压缩包创建一个目录存放jdkmkdir /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.配置环境变量,此处配置jdk8vim /etc/profile进入文件按 i 进入编辑模式#文件末尾添加以下内容export JAVA_HOME=/usr/local/java/jdk1.8.0_202export 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.卸载gityum remove git2.安装依赖yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y3.下载git,wget默认将文件下载在当前所处目录,或者直接下载tar包sftp传入Linuxcd ~ 进入当前用户家目录或者 cd /root ,即/root目录,因为当前登陆用户是rootwget https://mirrors./pub/software/scm/git/git-2.9.3.tar.gz --no-check-certificate4.解压到当前目录tar -zxvf git-2.9.3.tar.gz 5.配置安装路径cd git-2.9.3./configure prefix=/usr/local/git/6.编译安装make && make install7.配置环境变量echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile刷新配置source /etc/profile或者vi /etc/profileexport PATH=$PATH:/usr/local/git/binsource /etc/profile8.查看git版本git --version9.初始化git信息,此处配置的邮箱都是后续gitlab用户的邮箱git config --global user.name "xkcyyds"git config --global user.email "2057353320@"生成秘钥,直接一路回车即可ssh-keygen -t rsa -C "2057353320@"查看公钥cat ~/.ssh/id_rsa.pub

2.3 安装maven

1.下载mavenwget /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 存放mavenmkdir /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>/nexus/content/repositories/central/</url></mirror><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><piler.source>1.8</piler.source><piler.target>1.8</piler.target><pilerVersion>1.8</pilerVersion></properties></profile>

4.配置maven环境变量vim /etc/profile文件最后添加如下内容export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3export PATH=$MAVEN_HOME/bin:$PATH5.刷新配置文件source /etc/profile查看maven版本,成功输出信息则maven环境变量配置成功mvn --version

2.4 安装gitlab

1. 安装gitlab需要的组件yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python2. postfix启动邮件服务以及设置自启 根据需要选择是否开启 我没有开启 不开启可以跳到第三步systemctl start postfixsystemctl 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 = ipv4inet_interfaces = allpostfix check 检测文件,检测报错则安装下面依赖2.2 修改完毕后依然报错,此时需要安装依赖,MySQL5.5使用该方式,5.7使用下面的方式wget /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.rpmrpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm从新启动依然报错则是因为数据库版本问题,5.7MySQL自带libmysqlclient.so.20,而我们需要的是libmysqlclient.so.182.3 下载安装mysql依赖wget /get/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpmrpm -ivh mysql-community2.4再次启动可以成功3. 下载gitlab回到用户家目录 cd ~下载软件wget https://mirrors.tuna./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.rpm5. 配置gitlab访问地址 http://192.168.56.137为你自身服务器ip, 查看ip指令 ifconfigsed -i "/^external_url/cexternal_url 'http://192.168.56.137'" /etc/gitlab/gitlab.rb6. 修改gitlab访问端口,默认端口可能其他服务占用,可以自己指定访问端口vim /etc/gitlab/gitlab.rb修改 nginx['listen_port'] = 6868 (指定端口)重置:gitlab-ctl reconfigure 重置会有点慢,耐心等一下重置以后该文件监听端口也会改变,未改变需要手动改变一下vim /var/opt/gitlab/nginx/conf/gitlab-http.conflisten *: 6868 (指定端口是上面的端口)gitlab-ctl restart 重启gitlab-ctl tail 指令可以查看gitlab启动信息7.访问关闭防火墙或者放行端口6868,为了方便此处直接关闭防火墙阿里云服务器需要登陆管理界面添加规则放行6868端口,此处不做演示systemctl stop firewalld查看防火墙状态systemctl status firewalldip:porthttp://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'] = truegitlab_rails['smtp_address'] = ''# SMTP 服务器gitlab_rails['smtp_port'] = 465 # SMTP 服务器端口号gitlab_rails['smtp_user_name'] = '123456@'# 邮件账号gitlab_rails['smtp_password'] = '' # 邮件授权码gitlab_rails['smtp_authentication'] = 'login'gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = '123456@'阿里云服务器访问gitlab的502问题,阿里云服务器默认开启交换分区开启交换分区即可dd if=/dev/zero of=/mnt/swap bs=512 count=8388616mkswap /mnt/swapvim /etc/sysctl.conf修改vm.swappiness = 60 默认数值是0swapon /mnt/swapecho "/data/swap swap swap defaults 0 0" >> /etc/fstabcat /proc/swaps 查看是否成功挂载free 再次查看交换分区是否开启成功

2.5 安装Jenkins

0.rpm包下载位置,请注意版本,版本太低会导致后续安装不了插件此处选择的版本没有问题,但是需要jdk11及以上,所以上述安装了两个jdk版本https://mirrors.jenkins-/redhat/1.下载Jenkins的RPM包,速度根据自身有快慢wget https://mirrors.jenkins-/redhat/jenkins-2.389-1.1.noarch.rpm --no-check-certificate2.安装rpm -ivh jenkins-2.389-1.1.noarch.rpm3.修改配置vim /etc/sysconfig/jenkinsJENKINS_USER="root" #这里改为rootJENKINS_PORT="9898" #配置访问端口4.关闭防火墙或者开启8088端口5.配置jdkvim /etc/init.d/jenkins 在 candidates 内容最后添加本地安装jdk,必须11版本以上,该处选择17版本该路径是你自己安装jdk的路径,如果路径和我一样可以直接复制/usr/local/java/jdk-17.0.7

6.从新读取配置文件systemctl daemon-reload7.启动Jenkinssystemctl 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 status9.访问ip:port192.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-fontsyum install -y fontconfigyum 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.\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\//https:\/\//g' /var/lib/jenkins/updates/default.json

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

13.重启Jenkinsip:8088/restart

14.汉化JenkinsManage 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/bashworkPath=/usr/local/project/test/jarPath=/var/lib/jenkins/workspace/test/target/jarName=test-0.0.1-SNAPSHOT.jarmkdir -vp $workPathecho "==========创建工作空间=========="chmod 755 $workPathpid=`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=dontKillMeecho "==========执行启动demo服务=========="nohup java -jar test-0.0.1-SNAPSHOT.jar > test-logs.log 2>&1 &echo "==========启动成功demo服务=========="

16.如何卸载Jenkinsrpm -e jenkinsrpm -ql jenkinsfind / -iname jenkins | xargs -n 1000 rm -rf17.升级Jenkins17.0关闭Jenkins服务systemctl stop jenkinssystemctl status jenkins 17.1下载war包 https://mirrors.tuna./jenkins/war17.2查找服务器Jenkinswar位置find / -name jenkins.war17.3进入war所在位置cd /usr/lib/jenkins/17.4将war移动到其他目录mkdir /root/jenkins17.5将下载的war包放入该文件mv /root/jenkins.war ./17.6启动服务systemctl start jenkins17.7注意Jenkins版本与jdk对应版本,否则启动失败

我码的累你看的也累,一键三连支持一下,谢谢大家了,不好的地方也欢迎大家指出,码字不易转载请注明出处

如果觉得《全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。