前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零学习Jenkins部署SpringBoot项目

从零学习Jenkins部署SpringBoot项目

原创
作者头像
云原生架构说
发布2022-09-24 20:00:04
7580
发布2022-09-24 20:00:04
举报
文章被收录于专栏:Go后端技术

前言

之前项目中虽然使用过 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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 准备工作
    • JDK
      • Git
        • Gradle
          • 安装jenkins
            • 卸载jenkins
            • 初始化
              • 激活jenkins
                • 启动与关闭
                  • 插件安装
                  • 与Gitlab关联
                    • 配置SSH
                    相关产品与服务
                    云服务器
                    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档