jenkins自动化部署git 项目,jenkins自动部署前端项目

本文详细介绍了如何使用Jenkins实现代码提交后的自动化部署,包括搭建Jenkins服务器、配置Python自动化脚本、Springboot项目部署、构建自动打Tag、静态代码审查及WebHook触发构建,旨在提升开发效率和代码质量。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了jenkins自动化部署git 项目,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

1. 背景介绍

在实际开发中,经常要一边开发一边测试,经常为了一个功能而不断更新版本,这些情况都会涉及到频繁的打包、部署;手动打包的涉及到项目上传、打包、发布等很多重复工作;

那么,有一种工具能够实现,将代码提交到git后就自动打包部署,替换手动认为打包,答案是肯定的:Jenkins ,当然除了Jenkins以外,也还有其他的工具可以实现自动化部署;

2. Jenkins服务器搭建于基本配置

2.1. Jenkins自动化/持续集成部署实现原理

2.2. Python3.0自动化发布脚本

DevOps_remote.py文件

1 #!/usr/bin/env python2 #coding=utf-8

3

4 import paramiko5

6 import sys7

8

9

10 #shell 传入参数11

12 sourcePath = sys.argv[1]; #源目录13

14 targetPath = sys.argv[2]; #目标目录15

16 jarName = sys.argv[3]; #文件名17

18 runPort = sys.argv[4]; #运行端口19

20

21

22 #部署服务器配置23

24 serveHost = ["192.168.208.131","192.168.208.134","192.168.208.135"]; #目标服务器IP25

26 serveKey = {"192.168.208.131":"?","192.168.208.133":"?","192.168.208.134":"?","192.168.208.135":"?"}; #目标服务器密码27

28 serveUser = {"192.168.208.131":"march","192.168.208.133":"march","192.168.208.134":"march","192.168.208.135":"march"}; #目标服务器登录用户名29

30 serveSSHPort = {"192.168.208.131":5321,"192.168.208.133":5321,"192.168.208.134":5321,"192.168.208.135":5321}; #目标服务器SSH 端口31

32

33

34 #监听invoke_shell 交互动态结果35

36 #cmd 交互对象,endParam 结尾对象37

38 def mutualResult(cmd,endParam):39

40 buff = "";41

42 whilenot buff.endswith(endParam):43

44 line = cmd.recv(9999);45

46 try:47

48 #进行异常捕捉,如果解码有问题,则换一种解码方式49

50 buff += line.decode("utf8");51

52 except Exception :53

54 buff += line.decode("gb18030");55

56 returnbuff;57

58

59

60 #kill 运行端口61

62 def killPort(ssh,port):63

64 print ("run cmd >>" + "netstat -tunlp | grep"+port+"| awk '{print $7}' | awk -F'/' '{print $1}'");65

66 stdin, stdout, stderr = ssh.exec_command("netstat -tunlp | grep"+port+"| awk '{print $7}' | awk -F'/' '{print $1}'");67

68 pid =stdout.read().decode();69

70 print(pid)71

72 ifpid:73

74 print ("run cmd >> 关闭 java进程 进程ID:"+pid);75

76 ssh.exec_command("kill -9"+pid);77

78

79

80 def deploy():81

82 print("开始部署"+jarName);83

84 for ip inserveHost:85

86 print ("连接服务器IP:"+ip);87

88 #连接服务器89

90 ssh =paramiko.SSHClient();91

92 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy());93

94 ssh.connect(hostname=ip,port=serveSSHPort[ip],username=serveUser[ip],password=serveKey[ip]);95

96 cmd =ssh.invoke_shell();97

98 #连接交互99

100 print (mutualResult(cmd,"$"));101

102 print ("开始复制"+jarName+">> 服务:"+ip);103

104 print ("run cmd >> scp -r -P 5321 march@192.168.208.133:/var/lib/jenkins/workspace/" +sourcePath+ "/target/"+jarName+" "+ targetPath +"\n");105

106 cmd.send("scp -r -P 5321 march@192.168.208.133:/var/lib/jenkins/workspace/" +sourcePath+ "/target/"+jarName+" "+ targetPath +"\n");107

108 #监听交互并输入密码109

110 mutualResult(cmd,"'s password:");111

112 cmd.send("?\n");113

114 mutualResult(cmd,"$");115

116 cmd.close();117

118 print("run cmd >> scp suceess");119

120

121

122 #kill运行进程123

124 killPort(ssh,runPort);125

126

127

128 #启动服务129

130 cmd =ssh.invoke_shell();131

132 mutualResult(cmd,"$");133

134 print ("run cmd >>" + "nohup java -jar" + targetPath + "/" + jarName +"--server.port=" +runPort +">" + targetPath + "/" + jarName + ".log 2>&1 & \n");135

136 print ("等待服务器:" + ip + "启动");137

138 cmd.send("nohup java -jar" + targetPath + "/" + jarName +"--server.port=" +runPort +">" + targetPath + "/" + jarName + ".log 2>&1 & \n");139

140 mutualResult(cmd,"$");141

142 print ("核心服务:" + ip + "发布成功");143

144

145

146 cmd.close();147

148 ssh.close();149

150

151

152 if __name__ =="__deploy__":153

154 deploy()155

156 deploy()

DevOps_remote.sh脚本文件

1 #!/bin/bash2

3 python3 /var/lib/jenkins/workspace/dev_remote.py $1 $2 $3 $4

2.3. Jenkins 环境插件

2.3.1. 这里建议选择推荐安装,保证基本常用功能可以使用

2.3.2. 全局工具配置(Global Tool Configuration)

2.3.3. 系统配置

配置发布通知邮箱

2.3.4. 插件安装

3. Jenkins自动化部署

3.1. Springboot项目发布部署(git)

3.2. 构建完成后自动打Tag

3.3. Tag项目发布部署

使用参数构建:

3.4. 静态代码审查之fireline

配置:

代码审查结果:

3.5. 静态代码审查之checkstyle

pom.xml配置:

com.puppycrawl.tools

checkstyle

8.33

org.apache.maven.plugins

maven-checkstyle-plugin

3.1.1

true

xml

google_checks.xml

false

com.puppycrawl.tools

checkstyle

8.33

org.apache.maven.plugins

maven-checkstyle-plugin

3.1.1

google_checks.xml

Jenkins配置:

代码审查结果:

3.6. WebHook自动触发构建

GITHub自动推送

3.7. 循环构建远程服务完成提示

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值