Jenkins Pipeline 部署 SpringBoot 应用
一. 安装依赖包
yum install -y wget
yum install -y gcc-c++
yum install -y zlib-devel perl-ExtUtils-MakeMaker
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
yum install -y openssh-clients
yum install -y fontconfig
二. 环境准备
1.安装JAVA环境
yum -y install java-1.8.0-openjdk
#检测是否安装成功
java -version
修改/etc/profile文件,添加JAVA_HOME
vi /etc/profile
在文件的最后面,加上以下代码
export JAVA_HOME=/java/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
在执行完保存过后,必须执行以下source /etc/profile,重置文件,让它生效。
2.安装Maven
#下载
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
#解压改名移动目录
tar zxf apache-maven-3.1.1-bin.tar.gz
mv apache-maven-3.1.1 /usr/local/maven3
vi /etc/profile然后还需要 配置环境变量。 #在适当的位置添加
export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
保存退出后运行下面的命令使配置生效,或者重启服务器生效。
source /etc/profile
验证版本
mvn -v
出现maven版本即成功
阿里云源
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
三. 安装Jenkins部署SpringBoot应用
rpm方式安装:
sudo wget https://pkg.jenkins.io/redhat-stable/jenkins-2.164.1-1.1.noarch.rpm
sudo rpm -ivh jenkins-2.164.1-1.1.noarch.rpm
#重载服务(由于前面修改了Jenkins启动脚本)
sudo systemctl daemon-reload
#启动Jenkins服务
sudo systemctl start jenkins
#将Jenkins服务设置为开机启动
#由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
sudo /sbin/chkconfig jenkins on
war包方式:
修改Jenkins默认用户:
vi /etc/sysconfig/jenkins
#修改为Root用户
JENKINS_USER="root"
#给用户授权
sudo chown -R root /var/log/jenkins
sudo chgrp -R root /var/log/jenkins
sudo chown -R root /var/lib/jenkins
sudo chgrp -R root /var/lib/jenkins
sudo chown -R root /var/cache/jenkins
sudo chgrp -R root /var/cache/jenkins
直接将War包上传到服务器运行即可。
nohup java -jar jenkins.war >jenkins.log 2>&1 &
运行后访问localhost:8080即可。
进入界面后需要输入一串密码在服务器查看即可:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
进入之后创建好自己的用户名与密码,跳过所有下载。
登陆之后进入Manage Jenkins -> Global Tool Configuration 中进行配置Maven,Git,JDK
.png)

四. 新建Pipeline 项目
配置Git仓库:

脚本路径是指代码拉下的jenkins_files目录里面的01_eureka文件。·
node {
def mvnHome
def workspace = pwd()
def project_name = 'eureka-server-1.0.0.jar'
def project_log = 'eureka-server-1.0.0.log'
def project_home = 'app-centre/eureka-server'
def vm_ip = 'xxx.xxx.xxx.xxx'
def vm_port = '22'
def vm_user = 'root'
//代码获取
stage('Preparation') { // for display purposes
git branch: 'dev',
url:'https://xxxxxxx.git'
}
//构建
stage('Build') {
// Run the maven build
if (isUnix()) {
sh "mvn -Dmaven.test.skip=true clean package"
} else {
bat(/mvn -Dmaven.test.skip=true clean package/)
}
}
//移动
stage('MV') {
sh "mv ${project_home}/target/${project_name} /usr/local/src/"
}
//上传到服务器
stage('Upload VM') {
sh "scp -P ${vm_port} /usr/local/src/${project_name} ${vm_user}@${vm_port}:/usr/local/src/bk"
//sh "ssh -p ${vm_port} ${vm_user}@${vm_ip} 'nohup java -jar /usr/local/src/${project_name} >> ${project_log} '"
}
//运行JAR包
stage('Run') {
//sh "if (ps -ef| grep java|grep ${project_name})then (ps -ef| grep java|grep ${project_name}| awk '{print \$2}'|xargs kill -9) fi"
sh "ssh -p ${vm_port} ${vm_user}@${vm_ip} 'nohup java -jar /usr/local/src/${project_name} >${project_log} 2>&1 &'"
}
}
脚本步骤为
1.Preparation 拉取代码
2.Build 编译打包
3.MV 移动到指定目录
4.Upload VM 上传 jar包到虚拟机
5.Run 运行远程服务器Jar包
注意事项:
需要在脚本上直接将Jar上传到服务器必须配置ssh公钥私钥,配置步骤为:
进入服务器Root目录
- 输入命令:cd .ssh进入rsa公钥私钥目录(清空旧秘钥)
- 在当前目录下执行ssh-keygen -t rsa,三次回车后生成新的公钥(id_rsa.pub)私钥(id_rsa)文件(每个节点都要重新生成)
- 在主节点上执行命令:cat id_rsa.pub >> authorized_keys把公钥内容拷贝到该文件中
- 登录其它节点,把其它节点的公钥都拷贝到主节点的authorized_keys文件中(需要输入密码)
------------恢复内容结束------------
Jenkins Pipeline 部署 SpringBoot 应用的更多相关文章
- k8s + docker + Jenkins使用Pipeline部署SpringBoot项目时Jenkins错误集锦
背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docke ...
- Jenkins远程部署SpringBoot应用
一般Web工程通过Jenkins远程部署到Tomcat,可以采用Maven的tomcat-maven-plugin插件进行部署.最近接触到Spring Boot工程的部署,由于Spring Boot应 ...
- Jenkins自动部署springboot项目
说明: 该示例为在windows系统下自动化部署springboot 架构: springboot + github + gradle + jdk8 各种配置步骤及截图说明: 1.配置git,grad ...
- kubernetes使用jenkins Pipeline 部署Nginx
文章原文 环境需求 kubernetes 未安装参考使用kubeadm安装kubernetes 1.21 jenkins github/gitee/gitlab 静态页面 镜像仓库(我使用的 hub. ...
- jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(1)
前言:前面写过2篇文章,介绍jenkins通过slave节点部署构建并发布应用到虚拟机中,本篇介绍k8s(k3s)环境下,部署jenkins,通过流水线脚本方式构建发布应用到k8s(k3s)集群环境中 ...
- jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(2)
前言:上篇已介绍了jenkins在k3s环境部署,本篇继续上篇讲述流水线构建部署流程 1.从gitlab上拉取代码步骤 在jenkins中,新建一个凭证:Manage Jenkins -> Ma ...
- jenkins pipeline 部署
一.git 版本控制结合jenkins 发布 sh-4.2$ git branch sh-4.2$ git chekout master sh-4.2$ git tag v1.1 sh-4.2$ gi ...
- SpringBoot:使用Jenkins自动部署SpringBoot项目(二)具体配置
1.启动Jenkins 在浏览器输入ip:port后,进入Jenkins初始化界面,需要查看文件,得到密码. 输入密码进入初始化界面,选择推荐插件安装. 安装完成创建账号,进入Jenkins主界面. ...
- Linux安装Jenkins并部署springboot项目
安装步骤: 1.跳转连接https://pkg.jenkins.io/redhat-stable/下载安装包 2.安装命令: sudo rpm -ih jenkins-2.73.2-1.1.noarc ...
随机推荐
- 【Spring注解驱动开发】组件注册-@ComponentScan-自动扫描组件&指定扫描规则
写在前面 在实际项目中,我们更多的是使用Spring的包扫描功能对项目中的包进行扫描,凡是在指定的包或子包中的类上标注了@Repository.@Service.@Controller.@Compon ...
- zabbix 监控cpu 温度
Zabbix监控Linux主机CPU温度 一.客户端 1.客户Linux主机安装Im_sensors [root@localhost ~]# yum install -y lm-sensors-y ...
- MySQL查询优化利刃-EXPLAIN
有一个 ? 遇到这样一个疑问:当where中In一个索引字段,那么在查询中还会使用到索引吗? SELECT * FROM table_name WHERE column_index in (expr) ...
- Python中map和reduce函数
①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...
- 关于领域驱动设计 DDD(Domain-Driven Design)
以下旨在 理解DDD. 1. 什么是领域? 妈妈好是做母婴新零售的产品,应该属于电商平台,那么电商平台就是一个领域. 同一个领域的系统都有相同的核心业务. eg: 电商领域都有:商品浏览.购物 ...
- Lavarel 执行:php artisan migrate时报错
错误如下: 执行:php artisan migrate时报错: [PDOException]SQLSTATE[HY000] [2002] Connection refused 解决办法: 第一步:. ...
- Java学习之多线程详解
一.多线程的实现 1.继承Thread类 a.子类继承Thread类具备多线程能力 b.启动线程:子类对象.start() c.不建议使用:避免OOP单继承局限性 package com. ...
- HTML的简介和历史发展过程
HTML的简介和历史发展过程 前言 这次写一篇对于HTML以及CSS的简介,平常我们大家都知道的编程语言有很多种,比如Java.C++.Python等等,每种编程语言都有其独具的特色,不论是语法格式还 ...
- IAT表
0X0 0 DLL介绍 DLL翻译器为动态链接库,原来不存在DLL的概念只有,库的概念,编译器会把从库中获取的二进制代码插入到应用程序中.在现在windows操作系统使用了数量庞大的库函数(进程,内存 ...
- TensorFlow从0到1之TensorFlow实现简单线性回归(15)
本节将针对波士顿房价数据集的房间数量(RM)采用简单线性回归,目标是预测在最后一列(MEDV)给出的房价. 波士顿房价数据集可从http://lib.stat.cmu.edu/datasets/bos ...