jenkins自动部署到linux服务器记录

来源:互联网 发布:php工程师面试题及答案 编辑:程序博客网 时间:2024/04/28 01:03

场景是这样的:开发打包出来放到windows共享目录上,然后我们测试去取安装包然后上传到linux服务器,解压包,执行安装命令。

今天刚好把这块流程用jenkins自动执行出来,记录一下

问题1:

如何从共享文件夹里把安装包拷贝到jenkins工程文件下呢?

因为我电脑是记住远程文件服务器的密码的直接写python  复制是没有问题的。

然后我放到jenkins上去跑,报了权限的问题。我jenkins服务器也是记住共享文件服务器密码的。

于是想到另一个办法,做映射,做好映射之后,用jenkins跑,提示没有这个文件夹。

于是写了个bat每次跑的时候做映射,第一次还ok第二次又报错,说上一次连接没失效,无法连接。然后我就在bat前加一个每次做映射之前断开之前所有映射。

bat和python的命令要用两个命令框

这个是映射的share.bat文件内容,因为偶尔会出现一些64错误,所以我加了个判断,出错再执行一遍。

net use * /delete /ynet use z: \\192.168.24.160\Share\ /user:username passwordecho %errorlevel%if not %errorlevel%==0 net use z: \\192.168.24.160\Share\ /user:username password


这个是从共享文件服务器复制到jenkins服务器的脚本cp.py

#coding=utf-8import osimport sysimport shutilsharename=u'Z:/'+sys.argv[1]newname=u'C:\Program Files (x86)\Jenkins\workspace\工控工具箱自动部署\gk\gksec.tar.gz'print "start copy file"shutil.copyfile(sharename,newname)print "finish copy file"

好了,第一个问题解决了,项目文件夹下有个安装包,第二个问题是怎么把安装包上传到linux服务器,并执行linux命令

这个网上教程很多很详细,我就不写了,具体可以百度 jenkins 远程ssh文件上传


文件上传上去以后,我们还要监控web平台什么时候能正常打开,这样的话才能,执行我们的测试脚本。

所以我写了个脚本去监控check.py

import requestsimport sysimport timeimport warningswarnings.filterwarnings("ignore")url = "https://"+sys.argv[1]+":10443/login"while True:    try:        r=requests.get(url,timeout=5,verify=False)        if r.status_code == 200:            print "gksec started!"            break        else:            print "gksec error!"    except:        print "timeout"        time.sleep(10)



接下来给大家一些截图


阅读全文
0 0
原创粉丝点击