jenkins

 

Centos下Jenkins发布Springboot

0. 目录

  1. 原理
  2. 服务器A软件安装 
    2.1 安装git 
    2.2 安装JDK 
    2.3 安装Maven 
    2.4 安装Jenkins
  3. 配置Jenkins
  4. 配置springboot持续集成项目
  5. 配置服务器B目录和脚本
  6. 启动Jenkins下Springboot项目
  7. 检测springboot项目启动是否成功

1. 原理

有两个服务器A和B,服务器A安装Jenkins,服务器B运行Springboot项目。其步骤如下:

1.服务器A先安装JDK,再部署jenkins.war到Tomcat,根据Jenkins图形化配置好git,maven,ssh 
2.服务器A先用git工具从gitlab拉取代码,再用maven把springboot项目打包成jar包,然后用ssh传输到服务器B 
3.服务器B要有springboot脚本(先杀死进程,再启动),把springboot项目启动

2. 服务器A软件安装

服务器A准备环境

  • git
  • jdk1.8
  • maven
  • jenkins

2.1安装git

1.安装 yum install -y git 2.查看 git --version 3.配置ssh和gitlab

  1. 查看ssh的公钥和私钥,判断id_rsa.pub是否存在 
    ls ~/.ssh
  2. 如果不存在,创建ssh(可修改邮件地址) 
    ssh-keygen -t rsa -C "your_email@example.com"
  3. 如果存在,查看id_rsa.pub 
    cat ~/.ssh/id_rsa.pub
  4. 登陆gitlab,复制到gitlab的ssh配置中 
    右上角->Settings->SSH keys->Key和Title->Add key 
  5. 测试通过ssh拉取代码 
    git clone git@190.168.1.18:javagroup/microistore.git
  6. 查看git位置 
    which git

2.2安装JDK

1. 下载JDK 从官网https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载jdk-8u201-linux-x64.tar.gz。或者共享目录:
\190.168.1.31临时存储_文件留10天Java开发软件(永不删除)centos学习 2. 上传到服务器A,解压 tar -zxvf jdk-8u201-linux-x64.tar.gz 3. 移动到/usr目录下 mv jdk-8u201-linux-x64 java 4. 环境变量配置 vi /etc/profile
再加入 export JAVA_HOME=/usr/java export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH} 5. 环境变量生效 source /etc/profile 6. 环境变量检测 java -version

2.3安装Maven

1. 服务器A下载Maven wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz 2. 解压 tar zxf apache-maven-3.1.1-bin.tar.gz 3. 移动到/usr目录 mv apache-maven-3.1.1 /usr/maven 4. 环境变量配置 vi /etc/profile
再加入 export M2_HOME=/usr/maven export PATH=${M2_HOME}/bin:${PATH} 5. 环境变量生效 source /etc/profile 6. 环境变量检测 mvn -v

2.4安装Jenkins

1. 服务器A下载Jenkins wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.150.3/jenkins.war

2. 启动Jenkins(可放入tomcat容器中) nohup java -jar jenkins.war --logfile=server.log --httpPort=8080 > server.log 2>& 1 & 

3. 打开浏览器 输入http://localhost:8080 

4. 查看jenkins密钥,并且输入浏览器页面上 cat /root/.jenkins/secrets/initialAdminPassword 

5. 默认插件安装,选择第一个 cat /root/.jenkins/secrets/initialAdminPassword 6. 输入账号密码等信息 

3. 配置Jenkins

1. 安装Jenkins插件Maven Integration plugin和Publish Over SSH

步骤:Jenkins->系统管理->插件管理->Available->输入Maven Integration plugin->Install without restart->再安装Publish Over SSH 

2. 配置全局工具 步骤:Jenkins->系统管理->全局工具配置 依次配置JDK、Maven、Git(文件路径为上面配置路径)

  • JAVA_HOME为/usr/java
  • MAVEN_HOME为/usr/maven
  • Path to Git executable为/usr/bin/git(可用命令which git查看路径) 3. 配置SSH连接远程服务器B 步骤:Jenkins->系统管理->系统设置->向下滚动->Publish over SSH->Add->Advanced...->Use password authentication, or use a different key 
    分别输入服务器B名称、ip地址、ssh帐号、上传文件跟目录、ssh密码 

4.配置springboot持续集成项目

1.创建maven项目 步骤:Jenkins->新建项目 2.配置maven项目

  • 进入配置 
  • 配置git 
    Repository URL为gitlab的ssh项目地址 
    Branch Specifier (blank for 'any') 为项目分支 
  • 配置maven 
    Root POM为打包目录pom.xml 
    Goals and options为打包命令 
  • 进入SSH配置 

  • 步骤:Post Steps->Send files or execute commands over SSH 
  • 配置SSH Name为选择服务器B Source files为服务器A打包后jar的文件路径 Remove prefix为同上,但为文件夹 Remote directory为服务器B的相对目录,实际目录为/data/upload Exec command为服务器B的执行脚本 

5. 配置服务器B目录和脚本

  • 创建上传目录 mkdir /data mkdir /data/upload

  • 配置启动脚本(可在服务器A上Jenkins的Exec command执行脚本) 1.先配置java环境变量 2.再杀死原来springboot进程 3.最后启动springboot项目 vi /data/start.sh 再输入

#!/bin/sh

# --- script starts here
# 初始化jdk目录和jenkins上传目录
echo "开始启动项目"
JAVA_HOME=/usr/java
JAVA_START=$JAVA_HOME/bin/java
echo $JAVA_START
UPLOAD_HOME=/data/upload/

# 获取参数
APP_NAME=$1
PROFILE=$2
echo 第一个参数应用名:$APP_NAME
echo 第二个参数配置文件:$PROFILE

# 清除进程
pid=$(ps -ef | grep  -v grep |grep -v sh|grep $APP_NAME | awk '{print $2}')
echo 找到进程号:$pid

if [ -n "$pid" ];then
 kill -9 $pid
 echo "清除进程pid:"+"$pid" 
fi

# 启动
PROFILE_PATH=""
if [ -n "$PROFILE" ];then
PROFILE=--spring.profiles.active=$PROFILE
fi
nohup $JAVA_START -jar $UPLOAD_HOME$APP_NAME $PROFILE > $UPLOAD_HOME$APP_NAME.log 2>&1 &

echo 开始等待十五秒

sleep 20s
echo 日志输出开始

tail -200 $UPLOAD_HOME$APP_NAME.log

echo 日志输出结束
echo 启动项目成功

6. 启动Jenkins下Springboot项目

  • 启动springboot项目,再查看启动日志 
  • 再查看启动日志 
    选择最后一个Build History,再选择Console Output 

7. 检测springboot项目启动是否成功

如果有来生,要做一片树叶。 春天恋上枝,炎夏恋上水。 深秋恋上土,东来化作泥。 润物细无声,生生世世恋红尘。
原文地址:https://www.cnblogs.com/shujiying/p/11417842.html