目前测试要想回归或者开发提测新需求,如果人工手动部署,若是版本较多,会加大测试工作量,浪费很多时间,所以现提供自动化部署,减少测试工作量
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构建,代码便会自动部署到想对应的服务器上,并实现自动启动,减少测试的工作量。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐