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

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

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

问题1:

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

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

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

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

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

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

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

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


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

#coding=utf-8
import os
import sys
import shutil
sharename=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 requests
import sys
import time
import warnings
warnings.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)



接下来给大家一些截图


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值