springboot项目使用jenkins部署到远程服务器
jenkins
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
运行
由于官网下载太慢,推荐使用清华镜像下载war包
启动服务
java -jar jenkins.war
- 第一次启动会生成一个随机密码
/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
*************************************************************
*************************************************************
*************************************************************
-
浏览器访问,http://localhost:8080
输入上面生成的随机密码e8083fa403e64deba75a025401f074d7 -
推荐插件安装
由于下载太慢,先停服务。修改jenkins工作目录中/updates/default.json。
将文件中所有的"http://updates.jenkins-ci.org/download"替换成"https://mirrors.tuna.tsinghua.edu.cn/jenkins"
再次启动服务,选择推荐即可,如果熟悉使用的插件可以选择插件安装。
插件也可以在后续安装。 -
用户
选择使用admin用户继续
-
修改admin用户密码
选择右上角用户名->Configure
修改后保存即可
插件安装
git在推荐中已经安装了,只需要安装publish over SSH和Maven Integration即可
选择Manage Jenkins->Manage Plugins
建议使用浏览器自带的搜索功能查找插件
系统配置
选择Manage Jenkins->Configure System
-
修改jenkins location
Jenkins URL:使用正确的ip即可
System Admin e-mail address:系统管理员的邮箱 -
邮件通知
SMTP server:对应邮箱的smtp服务器
Test configuration:使用配置的邮箱发送一封测试邮件 -
SSH Servers
这一步不是必须配置的,也可以在使用时配置
Test Configuration:测试服务器配置是否正确
全局环境配置
选择Manage Jenkins->Global Tool Configuration
-
jdk
去除Install automatically(自动安装)勾选
Name:自己设置名字
JAVA_HOME:java环境变量的目录 -
git
Name:自己设置名字
Path to Git executable:git可执行的路径,如果配置了环境变量,直接git就可以 -
maven
创建
-
New Item
选择maven项目,ok
-
General(基础)
Discard old builds:丢弃旧的构建
Days to keep builds:保存旧构建的天数
Max # of builds to keep:最大保存旧构建的个数 -
Source Code Management(源代码管理)
Repository URL:库地址
Credentials:用户密码
Branch Specifier (blank for 'any'):分支 -
Build Triggers(构建触发器)
Trigger builds remotely:远程触发构建,本文演示使用
Build periodically:定期构建,和定时任务语法差不多 -
Build(构建)
Goals and options:maven命令生成jar
-
Post Steps(发布步骤)
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
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&
-
构建设置
构建失败后发送邮件给指定的收件人
构建
本文使用远端触发构建
浏览器输入:http://192.168.0.102:8080/job/demo/build?token=123
进入刚刚创建的项目中
Build History为构建历史,选择最近的一次查看Console Output(控制台输出)
成功后访问一下项目的测试链接,看看是否部署成功
作者公众号