ci自动化构建java项目_Jenkins 自动化(CI/DI)部署

1. 背景介绍

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

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

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

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

d20cdb5db693d10a31bee020a9d8ea92.png

8d4f181d110c9d4053ed2268200cbfea.png

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

DevOps_remote.py文件

#!/usr/bin/env python

#coding=utf-

import paramiko

import sys

#shell 传入参数

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

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

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

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

#部署服务器配置

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

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

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

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

#监听invoke_shell 交互动态结果

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

def mutualResult(cmd,endParam):

buff = "";

while not buff.endswith(endParam):

line = cmd.recv();

try:

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

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

except Exception :

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

return buff;

#kill 运行端口

def killPort(ssh,port):

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

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

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

print(pid)

if pid:

print ("run cm

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值