从零学习Jenkins部署SpringBoot项目

2022-09-24 20:00:04 浏览数 (1)

前言

之前项目中虽然使用过 Jenkins,但是都只是使用,没有自己搭建过,完整部署一个项目。既然工作中没有独立部署过,那么就只能自己动手实操一番,技多不压身嘛。

一开始是在本机上下载安装 Jenkins,然后将本地项目上传到 Gitlab 上,期望在 Jenkins 上构建项目,然后进行项目的部署和发布。但是在动手过程中发现本机 Jenkins 新建任务时走不通,要么就搭建虚拟机,或者搞台服务器,刚好手头有一台自己玩的服务器,刚好也刚贴合实际生产,所以才有了下文。

准备工作

JDK

准备java环境,jdk1.8

检查java是否安装,如果没有则先安装java环境:java -version

查看 jdk 安装路径:echo $JAVA_HOME

代码语言:javascript复制
[root@iZ8vbf6lodiycfjz81qhkyZ home]# echo $JAVA_HOME
/usr/java/jdk1.8.0_251-amd64

配置环境变量

代码语言:javascript复制
JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

后生效配置文件,

注意

如果不配置环境变量,结果会是这样

代码语言:javascript复制
[root@iZ8vbf6lodiycfjz81qhkyZ alternatives]# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
Git

通过 yum 命令安装 yum install git。

代码语言:javascript复制
git --version
#查看安装位置
which git

修改配置文件,如下命令:

代码语言:javascript复制
vi /usr/share/maven/conf/settings.xml
#然后添加阿里云镜像地址
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
#设置本地仓库
<localRepository>/home/maven/repository</localRepository>
Gradle

本文使用 Gradle 的最新版本是7.2。在继续下一步之前,您应该检查 Gradle版本页面,以查看是否有较新的版本。

首先使用以下 wget 命令在/tmp目录中下载仅Gradle Binary zip文件:

代码语言:javascript复制
wget https://services.gradle.org/distributions/gradle-7.2-bin.zip -P /tmp

下载完成后,解压缩/opt/gradle目录中的zip文件:

代码语言:javascript复制
sudo unzip -d /home/gradle /tmp/gradle-7.2-bin.zip

通过列出/opt/gradle/gradle-7.2目录来验证是否提取了Gradle文件:

代码语言:javascript复制
ls /home/gradle/gradle-7.2
bin  init.d  lib  LICENSE  NOTICE  README

配置环境变量,

代码语言:javascript复制
vi ~/.bash_profile
#追加如下内容
GRADLE_HOME=/home/gradle/gradle-7.2
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

看版本号

代码语言:javascript复制
gradle -v

安装jenkins

(1)安装稳定版

代码语言:javascript复制
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

安装完成后,如果想查看 jenkins 版本,按照网上的说法是去 /var/lib/jenkins 目录下执行下述命令:

代码语言:javascript复制
cat config.xml|grep version

不过我自己服务器的输出结果有点问题。

自动安装的话,默认用户名为 jenkins,端口为8080,默认目录:

  • 安装目录:/var/lib/jenkins
  • 日志目录:/var/log/jenkins/jenkins.log
  • 默认配置目录:/etc/sysconfig/jenkins

可修改jenkins用户为root用户、修改端口等

代码语言:javascript复制
vim /etc/sysconfig/jenkins
service jenkins restart
卸载jenkins

卸载yum方式安装的jenkins(默认安装主目录是在/var/lib/jenkins/

代码语言:javascript复制
service jenkins stop
yum clean all
yum -y remove jenkins

初始化


激活jenkins

首先启动 jenkins,执行下述命令:

代码语言:javascript复制
service jenkins start

然后访问 http::/ip:8080,

首次登录需要输入密码,看页面提示:

代码语言:javascript复制
/var/lib/jenkins/secrets/initialAdminPassword

浏览器进入Jenkins

(1)登录:http://自己的IP:8081/

(2)关闭:http://自己的IP:8081/exit

(3)重启:http://自己的IP:8081/restart

(4)重新加载:http://自己的IP:8081/reload

启动与关闭
代码语言:javascript复制
service jenkins start
service jenkins stop
#如果遇到warning
systemctl start jenkins
systemctl stop jenkins

插件安装

Authorize Project

给项目配置授权。

Gitlab Hook Plugin

当Github有代码提交时触发自动构建

SSH Slaves plugin

更新-2020-4-21:

1.26 还叫SSH slave

1.31.2 已经更新为SSH build Agents

Gitlab

当有新的commit push到gitlab时,jenkins可以自动触发构建过程。除了需要 gitlab-hook-plugin 插件,还需要 Gitlab 插件。

Deploy to container

与Gitlab关联

配置SSH

如果要通过 git 协议拉取代码,需要建立 Jenkins 服务器和 Gitlab 服务器的无密码通信,我们首先要生存一组密钥对。

代码语言:javascript复制
[root@iZ8vbf6lodiycfjz81qhkyZ tmp]# ssh-keygen -t rsa -C "你的邮箱(随意)"Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:D998pKifmjJgSmUcNNlaEDAdhB/UU4wr QkPVMkd1KU xxxxxThe key's randomart image is: ---[RSA 2048]---- |  oBOX.B o ..    ||  ..*.O o ..     ||     * o  E      ||    @ .          ||   o * .S     .  ||  . o        o   || . o .        .  ||  .   o  o . .   ||       o oo      | ----[SHA256]----- 

完成后在/root/.ssh/ 会生成2个文件。id_rsa 和 id_rsa.pub。前者是私钥,注意保管,后者是公钥。

添加SSH Key到GitLab

登录GitLab之后: Profile Settings => SSH Keys => Add SSH key

输入之前生成的公钥,标题自定义。

0 人点赞