jenkins部署springboot项目到远程服务器

springboot项目使用jenkins部署到远程服务器

jenkins

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

运行

  1. 由于官网下载太慢,推荐使用清华镜像下载war包

  2. 启动服务

java -jar jenkins.war 
  1. 第一次启动会生成一个随机密码
    /Users/dean.lee/.jenkins这个目录为jenkins的工作目录
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

e8083fa403e64deba75a025401f074d7

This may also be found at: /Users/dean.lee/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************
  1. 浏览器访问,http://localhost:8080
    jenkins部署springboot项目到远程服务器_第1张图片
    输入上面生成的随机密码e8083fa403e64deba75a025401f074d7

  2. 推荐插件安装
    jenkins部署springboot项目到远程服务器_第2张图片
    由于下载太慢,先停服务。修改jenkins工作目录中/updates/default.json。
    将文件中所有的"http://updates.jenkins-ci.org/download"替换成"https://mirrors.tuna.tsinghua.edu.cn/jenkins"
    再次启动服务,选择推荐即可,如果熟悉使用的插件可以选择插件安装。
    插件也可以在后续安装。

  3. 用户
    jenkins部署springboot项目到远程服务器_第3张图片
    选择使用admin用户继续

  4. 修改admin用户密码
    选择右上角用户名->Configure
    jenkins部署springboot项目到远程服务器_第4张图片
    修改后保存即可

插件安装

git在推荐中已经安装了,只需要安装publish over SSH和Maven Integration即可

选择Manage Jenkins->Manage Plugins
建议使用浏览器自带的搜索功能查找插件
jenkins部署springboot项目到远程服务器_第5张图片

系统配置

选择Manage Jenkins->Configure System

  1. 修改jenkins location
    jenkins部署springboot项目到远程服务器_第6张图片
    Jenkins URL:使用正确的ip即可
    System Admin e-mail address:系统管理员的邮箱

  2. 邮件通知
    jenkins部署springboot项目到远程服务器_第7张图片
    SMTP server:对应邮箱的smtp服务器
    Test configuration:使用配置的邮箱发送一封测试邮件

  3. SSH Servers
    这一步不是必须配置的,也可以在使用时配置
    jenkins部署springboot项目到远程服务器_第8张图片
    Test Configuration:测试服务器配置是否正确

全局环境配置

选择Manage Jenkins->Global Tool Configuration

  1. jdk
    去除Install automatically(自动安装)勾选
    jenkins部署springboot项目到远程服务器_第9张图片
    Name:自己设置名字
    JAVA_HOME:java环境变量的目录

  2. git
    jenkins部署springboot项目到远程服务器_第10张图片
    Name:自己设置名字
    Path to Git executable:git可执行的路径,如果配置了环境变量,直接git就可以

  3. maven
    jenkins部署springboot项目到远程服务器_第11张图片

创建

  1. New Item
    jenkins部署springboot项目到远程服务器_第12张图片
    选择maven项目,ok

  2. General(基础)
    jenkins部署springboot项目到远程服务器_第13张图片
    Discard old builds:丢弃旧的构建
    Days to keep builds:保存旧构建的天数
    Max # of builds to keep:最大保存旧构建的个数

  3. Source Code Management(源代码管理)
    jenkins部署springboot项目到远程服务器_第14张图片
    Repository URL:库地址
    Credentials:用户密码
    Branch Specifier (blank for ‘any’):分支

  4. Build Triggers(构建触发器)
    jenkins部署springboot项目到远程服务器_第15张图片
    Trigger builds remotely:远程触发构建,本文演示使用
    Build periodically:定期构建,和定时任务语法差不多

  5. Build(构建)
    jenkins部署springboot项目到远程服务器_第16张图片
    Goals and options:maven命令生成jar

  6. Post Steps(发布步骤)
    jenkins部署springboot项目到远程服务器_第17张图片
    Run only if build succeeds:在构建成功时执行后续步骤
    Add post-build step:添加构建后的步骤
    Send files or execute commands over SSH:通过ssh发送文件或执行命令
    点击Add post-build step,选择Send files or execute commands over SSH
    jenkins部署springboot项目到远程服务器_第18张图片
    Name:SSH Servers中配置的服务器
    Source files:源文件
    Remove prefix:删除前缀
    Remote directory:上传到服务器的目录
    Exec command:执行的脚本

脚本

#!/bin/bash
source /etc/profile
#jar所在目录
JAR_PATH=/usr/local/jar
#jar名称
JAR_NAME=demo-0.0.1-SNAPSHOT

#结束进程
echo "查询进程id-->$JAR_NAME"
PID=`ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}'`
echo "得到进程ID:$PID"
for id in $PID
do
	kill -9 $id  
done
echo "结束进程完成"

#运行jar
nohup java -jar $JAR_PATH/$JAR_NAME.jar > $JAR_PATH/$JAR_NAME.out 2>1&
  1. 构建设置
    jenkins部署springboot项目到远程服务器_第19张图片
    构建失败后发送邮件给指定的收件人

构建

本文使用远端触发构建
浏览器输入:http://192.168.0.102:8080/job/demo/build?token=123
进入刚刚创建的项目中
jenkins部署springboot项目到远程服务器_第20张图片
Build History为构建历史,选择最近的一次查看Console Output(控制台输出)
成功后访问一下项目的测试链接,看看是否部署成功


作者博客

作者公众号
在这里插入图片描述

你可能感兴趣的:(安装)