Jenkins+supervisor部署springboot 项目

mac2022-06-30  24

一、前言

    前面我们已经简介过Jenkins的安装和 利用pipeline完成docker镜像的制作,并且发布到kubernetes,点击查看详情,接下来将介绍一下Jenkins如何发布springboot 项目。

二、准备工作

1  安装jenkins

       点击查看安装步骤

2  服务器环境初始化

创建目录   mkdir /opt/ops/{new,tmp,project,logs,software,backup,scripts} 创建python脚本,deploy.py,放在/opt/ops/scripts 目录下 #-*- coding:utf-8 -*- import os import subprocess import sys import time date = time.strftime("%Y%m%d-%H%M%S",time.localtime()) BASE_DIR="/opt/project" BACK_DIR="/opt/ops/backup" NEW_DIR="/opt/ops/new" ServerDict={ "jj-jindun-app":{ "projectname": "jj-jindun-app", "packagename": "jj-jindun-app.jar", "port": 8088 }, "jj-jindun-back":{ "projectname": "jj-jindun-back", "packagename": "jj-jindun-back.jar", "port": 8089 }, } print "当前启动项目有:\n%s"%ServerDict.keys() def deploy(project): profile=os.path.join(BASE_DIR,ServerDict[project]["packagename"]) profile_bk=os.path.join(BACK_DIR,ServerDict[project]["packagename"])+"-"+date profile_new=os.path.join(NEW_DIR,ServerDict[project]["packagename"]) print profile_bk,profile,profile_new if os.path.exists(profile): os.system("cp -ar %s %s"%(profile,profile_bk)) else: os.system("cp -ar %s %s"%(profile_new,profile)) if os.path.exists(profile): print("start") os.system("cp -af %s %s"%(profile_new,profile)) print("done") os.system("supervisorctl restart %s"%project) time.sleep(40) if not os.system("netstat -antpl|grep -w %s"%ServerDict[project]["port"]): os.system("supervisorctl status %s"%project) print "%s项目上线Successful"%project else: os.system("cp -ar %s %s"%(profile_bk,profile)) os.system("supervisorctl restart %s"%project) print "%s项目上线Failed"%project sys.exit(1) else: print "项目文件不存在,更新失败" if __name__ == "__main__": if len(sys.argv) == 1: print "您必须要输入服务名" else: for i in sys.argv[1:]: if i in ServerDict.keys(): deploy(i) else: print "该项目不存在当前服务列表里" deploy.py deploy.py

注:脚本需要根据项目情况进行修改

Jenkins服务器与生产服务器配置免密,下面操作在Jenkins服务器上完成

[root@middleware software]#  ssh-keygen      一直回车即可

[root@middleware software]# ssh-copy-id -i 192.168.0.5 (生产服务器IP)

3  生产服务器安装进程管理工具supervisor

yum -y install supervisor systemctl enable supervisord.service systemctl start supervisord.service

  修改supervisor配置文件,supervisord.conf 文件末尾添加项目配置信息。

 vim /etc/supervisord.conf 

[program:项目名] #jdk 路径 environment=JAVA_HOME=/usr/java/jdk1.8.0_131 directory=/opt/java/ command=/usr/java/jdk1.8.0_131/jre/bin/java -Xms512m -Xmx512m -jar 项目jar包 --spring.profiles.active=prod stderr_logfile=/opt/ops/logs/项目名.err.log stderr_logfile=/opt/ops/logs/项目名.log

 4  安装git

yum -y install git

 5 安装maven

yum -y install maven

6.配置Jenkins

修改MAVEN_HOME

 

 

三、创建jenkins任务

1.新建任务

2.配置策略

 

3.源码管理

 

 4.Build配置

 5.post Steps

 

scp target/xxpay-shop.jar 192.168.0.5:/opt/ops/new/xxpay-shop.jar ssh root@192.168.0.5 "python /opt/ops/scripts/deploy.py xxpay-shop"

6. 发布项目

四、其他注意事项

1.将jenkins服务器SSH Key粘贴到GitHub

  如果git仓库为私有,需要登陆信息验证,那么需要将SSH Key配置到GitHub

进入GitHub登录GitHub --> 点击右上角的头像 --> Settings --> SSH and GPG keys --> New SSH Key

 填写名称和SSH公钥首先先确认在/root/.ssh/下有id_rsa和id_rsa.pub,然后将id_rsa.pub的内容复制到Key中

 

测试GitHub和Linux是否连通

ssh git@github.com

出现You’ve successfully authenticated表示连通成功

2.更换国内阿里nexus源

vim /etc/maven/settings.xml

<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>

3.如果有其他疑问,可以联系我   QQ: 986109409

 

 

  

转载于:https://www.cnblogs.com/xiangjun555/articles/11356693.html

最新回复(0)