运维自动化发布系统

运维自动化发布系统python

你们好哈,最近在学习用 python 作一个server发布系统。游戏的版本发布是运维平常工做中的主要部门,并且这工做频繁、重复、重复的进行着,运维必须采用一些自动化运维手段来处理版本更新发布;实现自动化运维颇有必要的手段,下面根据公司业务需求,自定义开发了一款运维自动化发布系统nginx

1、背景:

公司游戏业务应用须要频繁更新到线上服务器,开发人员打包好的bin文件存在SVN服务器上,运维须要将开发人员提交到svn 的执行文件及配置文件同步到线上(因为频繁、重复的更新,会给运维工做带来繁琐的工做量)web

应用更新包括:django

a、应用文件的更新替换bootstrap

b、应用进程的启停服务器

2、需求:

一、开发人员提交svn 代码后,能够经过web界面选择svn的文件,而后直接提交到线上服务器架构

二、能够经过web界面对相应进程进行启停操做;运维

三、能够查看相应的操做logsvn

3、实现:

(1)、自动化发布系统开发工具:工具

一、python (https://www.python.org/)

二、bootstrap (http://getbootstrap.com/)

三、Django (https://www.djangoproject.com/)

四、DataTables (http://datatables.net/)

(2)、架构说明:

发布系统

一、开发人员将本身编译好的bin文件及配置文件 提交的 svn版本库

二、运维人员在发布系统后台 配置项目(录入项目名、svn路径、远程IP、目录、进程启动项等信息,而且配置发布权限)( 1和2不分前后 )

三、开发人员及运维人员经过发布系统web界面选择对应操做并提交(操做包括选择更新文件或者选择进程重启项等)

四、发布系统后台将根据开发的选择项目(若是是发布文件,将会同步svn代码到本地,而后打包发布)作出相应

五、最后,发布系统将指令/文件分发至对应服务器执行

(3)、自动化发布系统功能:

一、项目接入及项目配置录入 (支持批量添加)

二、发布文件 (支持中起色发布)

三、发布回滚 (支持发布文件回滚)

四、发布文件列表(动态获取svn目录文件列表,生成树结构)

五、更新(启停)进程 (支持组的更新,前提是须要在功能1中分配好组信息)

六、用户登陆及权限管理(简易)

七、自定义触发脚本 (能够自定义脚本,相似svn的钩子功能)

(4)、web UI 浏览:

运维 /管理员能够添加项目及对应的svn信息等:

155731_p56Z_588586

配置进程信息等:

155731_4FFL_588586

发布文件界面:

155731_gR9s_588586

进程更新重启界面:

155732_tZeD_588586

4、实现中的各个重要点 及 我的学习体会 (更新中…. ),朋友,请猛戳

一、python + django + bootstrap 快速web开发初探

二、python 递归实现Easyui combotree树

三、python + django + bootstrap + uwsgi + nginx 环境搭建介绍

四、python 文件列表打包及解压(更新中…)

五、文件发布及命令执行

六、DataTables 应用介绍

相关文章
相关标签/搜索