ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git jenkins 部署

2019-11-14 12:54:24  阅读:175  来源: 互联网

标签:git tar get 部署 app gz url jenkins md5


  1. [root@localhost ~]# vim deploy_web.py
  2. import requests
  3. import os
  4. import hashlib
  5. import tarfile
  6. from urllib import request
  7. #使用url进行get请求,获取网站文本信息,获取当前版本
  8. def get_webdata(url):
  9. r = requests.get(url)
  10. return r.text
  11. #将网址内容下载到fname文件中
  12. def download(url, fname):
  13. html = request.urlopen(url)
  14. with open(fname, 'wb') as fobj:
  15. while True:
  16. data = html.read(1024)
  17. if not data:
  18. break
  19. fobj.write(data)
  20. #检查文件MD5值
  21. def check_md5(fname):
  22. m = hashlib.md5()
  23. with open(fname, 'rb') as fobj:
  24. while True:
  25. data = fobj.read(4096)
  26. if not data:
  27. break
  28. m.update(data)
  29. return m.hexdigest()
  30. #部署版本,应用发布代码
  31. def deploy(app): # /var/www/packages/myproject_2.0.tar.gz
  32. #切换路径到/var/www/packages路径下
  33. os.chdir('/var/www/packages')
  34. #解压缩myproject_2.0.tar.gz文件
  35. tar = tarfile.open(app, 'r:gz')
  36. tar.extractall()
  37. tar.close()
  38. #将.tar.gz替换成空字符串
  39. src = app.replace('.tar.gz', '')
  40. #创建/var/www/html/mysite软链接
  41. dst = '/var/www/html/mysite'
  42. if os.path.exists(dst):    #如果文件存在
  43. os.unlink(dst)            #删除
  44. os.symlink(src, dst)        #否则创建软链接
  45. if __name__ == '__main__':
  46. #调用get_webdata()函数,目的是以发布服务器'http://192.168.122.73/live_version'网址为参数获取当前版本,ver结果为2.0
  47. ver = get_webdata('http://192.168.122.73/live_version').strip()
  48. app_name = 'myproject_%s.tar.gz' % ver
  49. #app_url为下载myproject_2.0.tar.gz文件网址
  50. app_url = 'http://192.168.122.73/packages/' + app_name
  51. #目标文件
  52. app_path = os.path.join('/var/www/packages', app_name)
  53. #调用download()函数,目的是从app_url网址读取数据存入目标文件
  54. download(app_url, app_path)
  55. #调用check_md5()函数,目的是计算目标文件MD5值
  56. local_md5 = check_md5(app_path)
  57. #调用get_webdata()函数,目的从发布服务器网址获取md5值
  58. remote_md5 = get_webdata(app_url + '.md5').strip()
  59. #如果目标文件md5值和发布服务器提供的md5值相等,确认下载的文件无误,调用deploy()函数,以目标文件作为参数进行部署
  60. if local_md5 == remote_md5:
  61. deploy(app_path)

标签:git,tar,get,部署,app,gz,url,jenkins,md5
来源: https://www.cnblogs.com/jeffzhao/p/11856306.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有