热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins自动部署SpringBoot项目实践教程

Jenkins自动部署SpringBoot项目实践教程-目录1、Jenkins安装2、Jenkins插件安装3、点击添加凭据4、Jenkins环境配置4.1、全局配置4.2、系统配

1、Jenkins安装

下载jenkins安装包,maven安装包;打开xftp将安装包上传到服务器;弄maven镜像:进入maven的conf文件夹,vim打开setting.xml文件添加阿里云镜像;wq!保存退出。

在这里插入图片描述


  
    
        alimaven
        aliyun maven
        
            http://maven.aliyun.com/nexus/content/groups/public/
        
        central
    
  

配置环境变量,打开/etc/profile文件,添加maven的环境变量;添加完成后记得执行source /etc/profile使环境变量生效。添加配置如下:MAVEN_HOME改成自己maven的安装目录

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

运行 mvn -v验证maven是否安装成功

在这里插入图片描述

进入jenkins安装位置执行:java -jar jenkins.war &;启动;启动不成功,如果是端口占用,可以使用如下命令修改端口号并启动。执行之后生成一个密码,记下来

java -jar jenkins.war --ajp13Port=-1 --httpPort=8081 &

访问jenkins;如果访问不了,检查有没有在阿里云和宝塔开放上面使用端口的安全组;如果不用宝塔那么开发端口要使用命令:

firewall-cmd --zOne=public --add-port=8081/tcp --permanent

访问http://服务器ip:端口号;出现jenkins登录页面,使用第5步记住的密码登录。

2、Jenkins插件安装

选择系统管理,插件管理

在这里插入图片描述

安装ssh插件,点击可选插件,搜索Publish Over SSH插件,安装Plublish Over SSH插件之前得先按照Infrastructure plugin for Publish Over X插件。否则报错。

在这里插入图片描述

在这里插入图片描述

插件中搜索gitee,安装插件。

在这里插入图片描述

搜索 Jackson 2 API 插件

在这里插入图片描述

搜索Java JSON Web Token (JJWT) 插件,Javadoc Plugin插件,JUnit Plugin

在这里插入图片描述

搜索Maven Integration plugin插件,找不到就去掉后面的plugin搜索

在这里插入图片描述

搜索 Publish Over SSH;SSH Build Agents plugin;SSH Credentials Plugin;SSH plugin;SSH2 Easy Plugin插件

在这里插入图片描述

在这里插入图片描述

插件在后面如果出现问题提示是插件出现问题,可以再百度一下缺少哪些插件再继续安装 3、Jenkins设置凭据 选择系统管理,点击Manage Gredentials,

在这里插入图片描述

点击Jenkins

在这里插入图片描述

点击全局凭据

在这里插入图片描述

在这里插入图片描述

3、点击添加凭据

添加服务器凭据,填写服务器登录用户名和密码

在这里插入图片描述

添加gitee用户凭据,填写gitee账号用户名密码添加gitee私人令牌的凭据,去gitee账号添加私人令牌,获取到私人令牌再添加凭据。

在这里插入图片描述

4、Jenkins环境配置

4.1、全局配置

选择Manage Jenkins系统管理,选择Global Tool Configuration全局工具配置进入配置java的一些配置环境

在这里插入图片描述

进入配置环境Maven和JDK并保存

在这里插入图片描述

jdk取消自动安装,选择服务器中jdk的安装地址

在这里插入图片描述

在这里插入图片描述

4.2、系统配置

返回选择Manage Jenkins系统管理,选择系统配置

在这里插入图片描述

Maven配置

在这里插入图片描述

jenkins URL配置

在这里插入图片描述

环境变量配置

在这里插入图片描述

SSH配置

在这里插入图片描述

Gitee配置

在这里插入图片描述

使用密钥方式登录目标发布服务器

输入命令:ssh-keygen -t rsa回车;出现东西直接复制()里面的东西粘贴;回车;一直回车知道出现图形。

在这里插入图片描述

进入 /root/.ssh文件夹下ls可以查看有三个东西,一个私钥,一个公钥,authorized_keys文件。使用命令:cat id_rsa.pub >> /root/.ssh/authorized_keys;文件将公钥追加到authorized_keys文件中。

在这里插入图片描述

在系统配置中的Public over SSH上的Path to key写上生成的ssh路径::/root/.ssh/id_rsa

在这里插入图片描述

选择Confing System,配置ssh服务,填写下面信息

在这里插入图片描述

点击Test之后如果出现错误以下错误,那么看看有没有设置了凭据:

在这里插入图片描述

5、Jenkins自动部署SpringBoot项目

新建一个springboot项目,写个demo测试可不可以运行,然后上传到gitee上新建tiem(新建任务),在Jenkins中新建任务,选择构建一个maven项目,然后确定

在这里插入图片描述

General设置Gitee项目链接

在这里插入图片描述

源码管理,在git那里点击高级,将+refs/heads/master:refs/remotes/origin/master +refs/pull/*/MERGE:refs/pull/*/MERGE 填入Refspec中

在这里插入图片描述

构建触发器,构建环境

在这里插入图片描述

系统设置中的SSH remote hosts

在这里插入图片描述

设置Pre Steps,Build,Build点击高级可以展开填写如下信息

在这里插入图片描述

在这里插入图片描述

设置Post Steps

在这里插入图片描述

在这里插入图片描述

shart.sh文件内容如下:

/root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar是项目编译后jar包出现在这里,jar命令是以项目的pom文件中的artifactId和version拼接起来的。

/root/www/javaweb/project/testJenkis/out.log是项目编译后日志文件位置。

#!/bin/bash
source /etc/profile
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/java/jdk1.8.0_121 #你自己的jdk路径
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export BUILD_ID=dontKillMe
echo "  =====关闭Java应用======"
PROCESS=`ps -ef |grep java |grep -v grep|grep /root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
for i in $PROCESS
do
  echo "Kill the $1 process [ $i ]"
  kill -9 $i
done
echo "  =====启动Java应用======"
nohup java -jar /root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar  > /root/www/javaweb/project/testJenkis/out.log 2>&1 &
echo $! > savePid.txt
cat savePid.txt
rm  savePid.txt

然后给start.sh文件授权,命令如下: 777代表可读可写可执行

chmod -R 777 start.sh

应用保存任务设置点击立即构建,

在这里插入图片描述

可以选择控制台输出查看运行结果,如果出现错误,看提示修改,如果成功则可以访问项目中设置的接口路径。

6、遇到问题

1、重新启动jenkins忘记了登录密码

1. cd /root/.jenkins/users命令进入users文件夹,查看该文件下是否有用户文件夹,找到admin文件夹

2. 打开admin文件夹,发现里面有一个config.xml文件,打开改文件,找到passwordhash,可以先复制保存一下原来的passwordhash

3. 然后将passwordhash中的内容修改成如下内容并保存退出:`#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq`

4. 然后重启jenkins,如果重启失败,可能端口占用,估计是之前启动的jenkins还在运行,因此可以查看一下netstat -anp|grep 8081;端口是否占用,使用kill -9 进程id来杀死该进程。

5.然后重新之前启动jenkins命令:java -jar jenkins.war -ajp13Port=-1 -httpPort=8081

6. 访问jenkins使用123456密码进行登录。

7. 成功

2、 安装ssh插件出现问题

选择Manage Plugins ,可选插件,

在这里插入图片描述

下载ssh的时候出现以下错误

在这里插入图片描述

出现失败的原因是要先安装下面的插件,然后再安装就不会出错了。

在这里插入图片描述

3、构建项目出现如下错误:

在这里插入图片描述

在项目的pom.xml文件修改build为下面代码:记得得上传到gitee,或者直接在之前上传到gitee的项目那里修改pom


        compile
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
        
    

4、点击立即构建之后出现黄色,错误如下:

在这里插入图片描述

这个问题是找不到strat.sh的在哪里,仔细看看配置那里的构建后操作,一定要在根目录下创建shart.sh文件,而且这里配置路径的时候,要加上/root/不能直接www,否则就出现上面的错误。

在这里插入图片描述

5、如果编译成功,但是没有jar文件出现在服务器指定位置,查看out.log内容发现

在这里插入图片描述

然后试着修改指定jar位置的路径

修改前:

在这里插入图片描述

修改后:

在这里插入图片描述

jar是放在root目录下的www下,但是这里配置的时候不需要加上root,只有start.sh就必须要加上root,否则出错

成功解决问题

在这里插入图片描述

查看端口也运行了

在这里插入图片描述

查看浏览器也好了

在这里插入图片描述

7、用到的命令

  • maven -v回车;查看服务器是否安装maven
  • java -version;查看服务器是否有jdk环境
  • mkdir maven;创建文件夹
  • tar -zxvf 文件名;解压缩文件夹
  • whereis java;查看jdk安装目录
  • lsof -i:8080;查看端口8080是否被占用
  • kill -9 PID;杀死正在运行的进程
  • java jar jenkins.war --ajp13Port=-2 --httpPost=8080 &;启动jenkins程序
  • chmod -R 777 start.sh;给文件授权,777可读可写
  • pwd;显示当前目录
  • vim 文件;打开文件,i:编辑;esc:退出编辑;:wq!:保存退出

推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
author-avatar
陆星星陆星星风_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有