前言
在公司不是每个开发人员对linux操作都相对熟练。特别是在一些公司也没有专门的运维人员。因此,在每次上线的时候基本上都是相关的程序员发布项目(如:开发组长等等)。就算是这样还是避免不了在上线时的一些误操作,或者是有时候会忘记备份等等。为了让公司的上线流程规范起来,进而开发了这小程序来满足公司的项目发布。
程序介绍
本程序能满足你日常的项目上线更加的流程化、自动化。
本程序是由python所编写。
需要安装的模块如下表:
软件/模块 | 版本 | 备注 |
python | 2.7.10 | |
paramiko | 1.16.0 | 用于ssh链接服务器 |
progressbar | 2.3-py2.7 | google的一个进度条python模块 |
由于考虑到有些人不愿意安装python、这边也提供了使用exe执行实现自动化上线。
本人的计算机是win7 64bit 运行没问题。
程序结构
本程序由4-5个目录构成(bin、conf、log、script、dist、build):
- bin:存放了主程序文件。
- conf:存放了配置文件。
- log:存放了运行过程中的日志文件。有两种日志文件一个是自己记录的log,还有一个是paramiko模块记录的exec_cmd_xx.log)。
- script:存放了执行远程服务器shell的命令文件(有两个一个是为了停止服务cmd,另一个是启动服务stop_server.cmd)。
- dist:如果是使用exe版就存在此目录 -> 存放执行主程序。
- build:如果是使用exe版就存在此目录 -> 存放python编译后的文件。
程序流程图
如何使用
- python版
- 进入conf文件夹,打开配置文件,配置相关的设置如(主机名、端口、用户名、密码等等)
- 进入script文件夹,分别打开停止和开启服务的命令文件,填写你需要执行的shell命令。一个命令需要写在一行里面,可以使用“#”注释。当然如果你不需要执行命令也可以不写。
- 进入bin文件夹,双击py。
注意:如果你是在dos窗口下执行需要 cd 到bin文件夹下运行 python upload_distribute.py。
- exe版
- 进入conf文件夹,打开配置文件,配置相关的设置如(主机名、端口、用户名、密码等等)
- 进入script文件夹,分别打开停止和开启服务的命令文件,填写你需要执行的shell命令。一个命令需要写在一行里面,可以使用“#”注释。当然如果你不需要执行命令也可以不写。
- 进入dist文件夹,双击exe执行主程序。
执行过程展示
相关文件展示
- 配置文件
这里展示了配置两个模块:easy、bee。其中easy是完整的,而bee有一部分被注释所以在运行程序,检测的时候会报错。
- 命令文件
1. stop_server.cmd
2. start_server.cmd
细心的人注意到以上的shell脚本尽然 添加了 source /root/.bash_profile &&,我这样使用的原因是。使用python ssh登陆linux执行shell的时候,感觉他不会执行用户家目录下的.bash_profile程序。因此有些程序执行的路径就会不对。例如,我的系统中自带的jdk版本是:OpenJDK 1.6.0_24,而我自己的环境变量中设置的是使用 java 1.7.0_79。所以他会只用 系统自带的jdk,这样不是我所希望的。
动脑筋的人可能会说那我在命令文件中的最开始就执行一次 source /root/.bash_profile 在后面每行命令前就不需要添加 source /root/.bash_profile && 了?很不行的告诉你,刚开始我也是这样想的,可惜在开发试验的过程中这样是不行的。所以个人感觉,他每次执行就好像是另外开启了一个session一样。
(有知道原因的,请告诉一下为什么谢谢 :) )
- 主程序
这里只展示程序的主过程:
小技巧
在上面我展示的执行过程是模拟发布tomcat项目上传单文件的,应为java web项目可以打包成一个war包用户上传和部署。但是如果是使用 nginx/apache 项目的总不肯能一个个文件的上传发布吧。
这里我们以你的 nginx/apache 项目是在 /www 目录下为例来说明一下(这里说明的是全量发布):
- 你可以将你要发布项目打包,如:tar.gz
- 配置好配置文件。
- 可以在cmd 文件中,在启动服务前执行移除之前项目和解包命令如:
当然这样在你的/www目录下应该留下一个sample.tar.gz项目文件,对于本人来说是不影响的。
在这里多啰嗦一句,如果你的项目是做了负载,当你上项目的时候可以先 down 掉一个服务器中的虚拟IP(也有可能是不虚拟IP)不让外界访问。down 掉IP的命令可以写在 stop_server.cmd 文件中,如果发布并启动服务成功你需要UP IP,UP IP的命令可以写在start_server.cmd文件中。
Python源代码
python源码:distribute_project_py.tar.bz2
EXE可执行文件:distribute_project_exe.tar.bz2
作者信息
昵称:HH
相关推荐
python自动化上线部署系统
python自动化打包java maven工程,并上传至服务器,简化服务器war上传步骤和节约时间
基于抖音创作平台用户登录后的Cookie实现抖音视频自动发布,可以设置经纬度地理位置。
史上最简单易学的python自动化测试教程从基础与实战【柠檬班软件测试】 202x-11-11 演讲人 史上最简单易学的Python自动化测试教程从基础与实战【柠檬班软件测试】PPT模板全文共13页,当前为第1页。 1如何使用python...
Python自动化测试教程,从零基础开始手把手有详细的步骤教你怎么写自动化测试用例。测试人员大多是希望利用编程诧言来帮劣他实现自劢化的测试,而丌需要花费大量的精力来学习一门编程诧言,所以在本文档中丌会过多...
Python自动化测试.pdf
Python 如何自动对多个Word文档提取目录 Python源码Python 如何自动对多个Word文档提取目录 Python源码Python 如何自动对多个Word文档提取目录 Python源码Python 如何自动对多个Word文档提取目录 Python源码Python ...
Python办公自动化课程包含:Python操作Excel+Word+PPT,moviepy自动化视频剪辑+Python操作图片+操作PDF+自动操控电脑+收发邮件+自动化控制浏览器+整理文件+GUI桌面:PyQT6基础等知识。 --课程特色-- 1、涵盖Python...
基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于...
selenium2 python自动化测试 PDF学习 本PDF可以学习到如何进行Web自动化测试以多线程运行测试集,自动生成测试报告,最后完成后发送邮件等功能。
Python自动组卷系统源码.zip
今天小编就为大家分享一篇python实现自动化上线脚本的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
python自动化办公手册pdf ,更多Pyhon自动化学习可参考我的这篇文章:https://blog.csdn.net/qq_36816848/article/details/118077191
Python自动化办公(2021最新版!有源代码 ,~).zip
python自动创建字符验证码,python创建验证码! python自动创建字符验证码,python创建验证码! python自动创建字符验证码,python创建验证码! python自动创建字符验证码,python创建验证码 !python自动创建字符...
自己看过的对自己比较有帮助的自动化测试方面的Python书籍,希望与大家分享。
python自动化测试
python自动化运维
Python自动化运维 技术与最佳实践-带书签pdf扫描版 。
Python自动选股系统源码.zip