一. 安装依赖包
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

四. 新建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目录

  1. 输入命令:cd .ssh进入rsa公钥私钥目录(清空旧秘钥)
  2. 在当前目录下执行ssh-keygen -t rsa,三次回车后生成新的公钥(id_rsa.pub)私钥(id_rsa)文件(每个节点都要重新生成)
  3. 在主节点上执行命令:cat id_rsa.pub >> authorized_keys把公钥内容拷贝到该文件中
  4. 登录其它节点,把其它节点的公钥都拷贝到主节点的authorized_keys文件中(需要输入密码)

------------恢复内容结束------------

Jenkins Pipeline 部署 SpringBoot 应用的更多相关文章

  1. 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 ...

  2. Jenkins远程部署SpringBoot应用

    一般Web工程通过Jenkins远程部署到Tomcat,可以采用Maven的tomcat-maven-plugin插件进行部署.最近接触到Spring Boot工程的部署,由于Spring Boot应 ...

  3. Jenkins自动部署springboot项目

    说明: 该示例为在windows系统下自动化部署springboot 架构: springboot + github + gradle + jdk8 各种配置步骤及截图说明: 1.配置git,grad ...

  4. kubernetes使用jenkins Pipeline 部署Nginx

    文章原文 环境需求 kubernetes 未安装参考使用kubeadm安装kubernetes 1.21 jenkins github/gitee/gitlab 静态页面 镜像仓库(我使用的 hub. ...

  5. jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(1)

    前言:前面写过2篇文章,介绍jenkins通过slave节点部署构建并发布应用到虚拟机中,本篇介绍k8s(k3s)环境下,部署jenkins,通过流水线脚本方式构建发布应用到k8s(k3s)集群环境中 ...

  6. jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(2)

    前言:上篇已介绍了jenkins在k3s环境部署,本篇继续上篇讲述流水线构建部署流程 1.从gitlab上拉取代码步骤 在jenkins中,新建一个凭证:Manage Jenkins -> Ma ...

  7. 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 ...

  8. SpringBoot:使用Jenkins自动部署SpringBoot项目(二)具体配置

    1.启动Jenkins 在浏览器输入ip:port后,进入Jenkins初始化界面,需要查看文件,得到密码. 输入密码进入初始化界面,选择推荐插件安装. 安装完成创建账号,进入Jenkins主界面. ...

  9. Linux安装Jenkins并部署springboot项目

    安装步骤: 1.跳转连接https://pkg.jenkins.io/redhat-stable/下载安装包 2.安装命令: sudo rpm -ih jenkins-2.73.2-1.1.noarc ...

随机推荐

  1. 运用Navicat for MySQL进行MSSQL数据转移MYSQL

    当前不同数据库进行数据转移已经不是一件麻烦事情,特别是有很多很方便的工具,而最近我在搜集各种数据时候,也需要进行大量的数据转移,并且数据库和所转移的数据库表都不同,这次给大家介绍个最简单的方法,就是使 ...

  2. sql server 连接种类

    一.连接种类 内连接 inner join 如果分步骤理解的话,内连接可以看做先对两个表进行了交叉连接后,再通过加上限制条件(SQL中通过关键字on)剔除不符合条件的行的子集,得到的结果就是内连接了. ...

  3. java关键字final用法详解

    final关键字在java中也是属于比较常用的一种,因此也算得上是一个比较重要的关键字,有必要对它进行深入的学习. 一.定义:用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成 ...

  4. 快速升级Zabbix 5.0 版本

    Zabbix 5.0 增加了很多新功能,如:垂直菜单.隐藏菜单.用户界面中的测试项目.限制代理检查.查找并替换预处理步骤 ES7支持等等...快来部署体验一把尝鲜体验 Zabbix 5.0 吧     ...

  5. 多态的C语言实现版本

    #ifndef _51_2_H #define _51_2_H typedef void Demo; typedef void Derived; Demo* Demo_create(int i,int ...

  6. Spyder汉化教程

    汉化包下载地址:https://www.lizenghai.com/archives/523.html 1.解压汉化包 2. 3.1.运行汉化补丁PS C:\WINDOWS\system32> ...

  7. office2016专业增强版激活密匙 (shell激活版)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_42642945/article/d ...

  8. 【论文阅读】Harris角点算法

    #coding=utf-8 from PIL import Image import numpy as np from scipy.ndimage import filters import matp ...

  9. 面试:在面试中关于List(ArrayList、LinkedList)集合会怎么问呢?你该如何回答呢?

    前言 在一开始基础面的时候,很多面试官可能会问List集合一些基础知识,比如: ArrayList默认大小是多少,是如何扩容的? ArrayList和LinkedList的底层数据结构是什么? Arr ...

  10. IntelliJ IDEA中项目import与open的区别

    场景: 从原来公司离职来到新的公司,接手公司项目,先将项目从git或svn项目版本管理上clone下来,如果项目原先是用Eclipse开发的,而你更习惯于使用IntelliJ IDEA,下面是针对使用 ...