Jenkins自动部署SpringBoot项目实践

springboot结合jenkins过程

1、Jenkins安装

  1. 下载jenkins安装包,maven安装包;打开xftp将安装包上传到服务器;
  2. 弄maven镜像:进入maven的conf文件夹,vim打开setting.xml文件添加阿里云镜像;wq!保存退出。
    在这里插入图片描述
 <!-- 阿里镜像仓库 -->
  <mirrors>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>
            http://maven.aliyun.com/nexus/content/groups/public/
        </url>
        <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  1. 配置环境变量,打开/etc/profile文件,添加maven的环境变量;添加完成后记得执行source /etc/profile使环境变量生效。添加配置如下:MAVEN_HOME改成自己maven的安装目录
MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
  1. 运行 mvn -v验证maven是否安装成功
    在这里插入图片描述
  2. 进入jenkins安装位置执行:java -jar jenkins.war &;启动;启动不成功,如果是端口占用,可以使用如下命令修改端口号并启动。执行之后生成一个密码,记下来
java -jar jenkins.war --ajp13Port=-1 --httpPort=8081 &
  1. 访问jenkins;如果访问不了,检查有没有在阿里云和宝塔开放上面使用端口的安全组;如果不用宝塔那么开发端口要使用命令:
firewall-cmd --zone=public --add-port=8081/tcp --permanent
  1. 访问http://服务器ip:端口号;出现jenkins登录页面,使用第5步记住的密码登录。

2、Jenkins插件安装

  1. 选择系统管理,插件管理
    在这里插入图片描述
  2. 安装ssh插件,点击可选插件,搜索Publish Over SSH插件,安装Plublish Over SSH插件之前得先按照Infrastructure plugin for Publish Over X插件。否则报错。
    在这里插入图片描述
    在这里插入图片描述
  3. 插件中搜索gitee,安装插件。
    在这里插入图片描述
  4. 搜索 Jackson 2 API 插件
    在这里插入图片描述
  5. 搜索Java JSON Web Token (JJWT) 插件,Javadoc Plugin插件,JUnit Plugin
    在这里插入图片描述
  6. 搜索Maven Integration plugin插件,找不到就去掉后面的plugin搜索
    在这里插入图片描述
  7. 搜索 Publish Over SSH;SSH Build Agents plugin;SSH Credentials
    Plugin;SSH plugin;SSH2 Easy Plugin插件
    在这里插入图片描述
    在这里插入图片描述
    插件在后面如果出现问题提示是插件出现问题,可以再百度一下缺少哪些插件再继续安装

3、Jenkins设置凭据

  1. 选择系统管理,点击Manage Gredentials,
    在这里插入图片描述
  2. 点击Jenkins
    在这里插入图片描述
  3. 点击全局凭据
    在这里插入图片描述
    在这里插入图片描述
  4. 点击添加凭据
    添加服务器凭据,填写服务器登录用户名和密码
    在这里插入图片描述
  5. 添加gitee用户凭据,填写gitee账号用户名密码
  6. 添加gitee私人令牌的凭据,去gitee账号添加私人令牌,获取到私人令牌再添加凭据。
    在这里插入图片描述

4、Jenkins环境配置


4.1、全局配置

  1. 选择Manage Jenkins系统管理,选择Global Tool Configuration全局工具配置进入配置java的一些配置环境
    在这里插入图片描述
  2. 进入配置环境Maven和JDK并保存
    这里的Maven选择服务器中下载的maven的路径,JDK选择服务器安装路径,找不到JDK安装路径可以看这里服务器jdk安装位置查询步骤:
    在这里插入图片描述
  3. jdk取消自动安装,选择服务器中jdk的安装地址
    在这里插入图片描述
    在这里插入图片描述

4.2、系统配置

  1. 返回选择Manage Jenkins系统管理,选择系统配置
    在这里插入图片描述
  2. Maven配置
    在这里插入图片描述
  3. jenkins URL配置
    在这里插入图片描述
  4. 环境变量配置
    在这里插入图片描述
  5. SSH配置
    在这里插入图片描述
  6. Gitee配置
    在这里插入图片描述
  7. 使用密钥方式登录目标发布服务器
    输入命令:ssh-keygen -t rsa回车;出现东西直接复制()里面的东西粘贴;回车;一直回车知道出现图形。
    在这里插入图片描述
  8. 进入 /root/.ssh文件夹下ls可以查看有三个东西,一个私钥,一个公钥,authorized_keys文件。
  9. 使用命令:cat id_rsa.pub >> /root/.ssh/authorized_keys;文件将公钥追加到authorized_keys文件中。
    在这里插入图片描述
  10. 在系统配置中的Public over SSH上的Path to key写上生成的ssh路径::/root/.ssh/id_rsa
    在这里插入图片描述
  11. 选择Confing System,配置ssh服务,填写下面信息
    在这里插入图片描述
  12. 点击Test之后如果出现错误以下错误,那么看看有没有设置了凭据:
    在这里插入图片描述

5、Jenkins自动部署SpringBoot项目

  1. 新建一个springboot项目,写个demo测试可不可以运行,然后上传到gitee上
  2. 新建tiem(新建任务),在Jenkins中新建任务,选择构建一个maven项目,然后确定
    在这里插入图片描述
  3. General设置Gitee项目链接
    在这里插入图片描述
  4. 源码管理,在git那里点击高级,将+refs/heads/master:refs/remotes/origin/master +refs/pull/*/MERGE:refs/pull/*/MERGE 填入Refspec中
    在这里插入图片描述
  5. 构建触发器,构建环境
    在这里插入图片描述
  6. 系统设置中的SSH remote hosts
    在这里插入图片描述
  7. 设置Pre Steps,Build,Build点击高级可以展开填写如下信息
    在这里插入图片描述
    在这里插入图片描述
  8. 设置Post Steps
    在这里插入图片描述
    在这里插入图片描述
  9. 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
  1. 然后给start.sh文件授权,命令如下: 777代表可读可写可执行
chmod -R 777 start.sh
  1. 应用保存任务设置
  2. 点击立即构建,
    在这里插入图片描述
  3. 可以选择控制台输出查看运行结果,如果出现错误,看提示修改,如果成功则可以访问项目中设置的接口路径。

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
 5. 访问jenkins使用123456密码进行登录。
 6. 成功

2、 安装ssh插件出现问题
选择Manage Plugins ,可选插件,
在这里插入图片描述
下载ssh的时候出现以下错误
在这里插入图片描述
出现失败的原因是要先安装下面的插件,然后再安装就不会出错了。
在这里插入图片描述
3、构建项目出现如下错误:
在这里插入图片描述
在项目的pom.xml文件修改build为下面代码:记得得上传到gitee,或者直接在之前上传到gitee的项目那里修改pom

 <build>
        <defaultGoal>compile</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

4、点击立即构建之后出现黄色,错误如下:
在这里插入图片描述
这个问题是找不到strat.sh的在哪里,仔细看看配置那里的构建后操作,一定要在根目录下创建shart.sh文件,而且这里配置路径的时候,要加上/root/不能直接www,否则就出现上面的错误。
在这里插入图片描述
5、如果编译成功,但是没有jar文件出现在服务器指定位置,查看out.log内容发现
在这里插入图片描述
然后试着修改指定jar位置的路径
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
jar是放在root目录下的www下,但是这里配置的时候不需要加上root,只有start.sh就必须要加上root,否则出错
成功解决问题
在这里插入图片描述
查看端口也运行了
在这里插入图片描述
查看浏览器也好了
在这里插入图片描述

7、用到的命令

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值