利用python实现Jenkins自动化部署代码
目前测试要想回归或者开发提测新需求,如果人工手动部署,若是版本较多,会加大测试工作量,浪费很多时间,所以现提供自动化部署,减少测试工作量1.python代码#coding:utf-8# -*- coding: utf-8 -*-# 作者:薛创业# 日期:2019/12/20 15:00import paramikoimport time#所要部署的服务器host='10.1.1.1'port=22
·
目前测试要想回归或者开发提测新需求,如果人工手动部署,若是版本较多,会加大测试工作量,浪费很多时间,所以现提供自动化部署,减少测试工作量
1.python代码
#coding:utf-8
# -*- coding: utf-8 -*-
# 作者:薛创业
# 日期:2019/12/20 15:00
import paramiko
import time
#所要部署的服务器
host='10.1.1.1'
port=22
#服务器账号密码
username="root"
pwd="root"
class SSHConnection(object):
#用于连接linux服务器
def __init__(self, host, port, username, pwd):
self.host = host
self.port = port
self.username = username
self.pwd = pwd
self.__k = None
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(hostname=self.host, port=self.port, username=self.username, password=self.pwd)
#输入linux命令并输出结果
def connect(self,cmd):
stdin, stdout, stderr = self.ssh.exec_command(cmd)
result = stdout.read()
print(str(result,'utf-8'))
return str(result,'utf-8')
#关闭linux连接
def close(self):
self.ssh.close()
obj = SSHConnection(host,port,username,pwd)
#------------------------停止应用------------------------
#其中app.jar替换成对应需要部署的包名
obj.connect("ps -ef | grep app.jar | grep -v grep | awk '{print $2}' | xargs kill -9 ")
time.sleep(1)
#------------------------备份应用------------------------
obj.connect("mv -f /data/app/app.jar /data/app/bak/app.jar(date +%Y%m%d%H%M)")
time.sleep(2)
#------------------------下载应用------------------------
#
obj.connect("wget http://195.195.9.99:8082/job/%E6%95%B0%E6%8D%AE%E6%8E%A5%E5%8F%A3%E5%B9%B3%E5%8F%B0-%E7%BD%91%E5%85%B3%E7%94%B3%E8%AF%B7%E6%9C%8D%E5%8A%A1%EF%BC%88datac-gateway-api-consumer%EF%BC%89/ws/app.jar -O /data/app/app.jar ")
time.sleep(5)
#------------------------启动应用------------------------
obj.connect("source /etc/profile;nohup java -jar /data/app/app.jar --spring.config.location=/data/app/config/ --spring.profiles.active=test > /data/app/logs/app.log 2>&1 &")
obj.close()
2.jenkins配置,增加构建步骤
3.python代码提交,与jenkins放到同一服务器上,通过FTP或者其他方式上传的jenkins服务器对应路径即可,需要注意的是路径要与第二部执行的py脚本一致
4.点击jenkins构建,代码便会自动部署到想对应的服务器上,并实现自动启动,减少测试的工作量。
更多推荐
已为社区贡献3条内容
所有评论(0)