zoukankan      html  css  js  c++  java
  • 运维自动化发布系统

    运维自动化发布系统

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

    一、背景:

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

    应用更新包括:

    a、应用文件的更新替换

    b、应用进程的启停

    二、需求:

    1、开发人员提交svn 代码后,可以通过web界面选择svn的文件,然后直接提交到线上服务器

    2、可以通过web界面对相应进程进行启停操作;

    3、可以查看相应的操作log

    三、实现:

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

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

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

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

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

    (2)、架构说明:

    发布系统

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

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

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

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

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

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

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

    2、发布文件 (支持中转机发布)

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

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

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

    6、用户登录及权限管理(简易)

    7、自定义触发脚本 (可以自定义脚本,类似svn的钩子功能)

    (4)、web UI 浏览:

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

    155731_p56Z_588586

    配置进程信息等:

    155731_4FFL_588586

    发布文件界面:

    155731_gR9s_588586

    进程更新重启界面:

    155732_tZeD_588586

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

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

    2、python 递归实现Easyui combotree树

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

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

    5、文件发布及命令执行

    6、DataTables 应用介绍

  • 相关阅读:
    Python装饰器学习(九步入门)
    jQuery练习题
    JavaScript 练习题
    Apache的安装与下载
    非常好用的CSS样式重置表
    表单练习
    shell命令lsof
    IndentationError: unindent does not match any outer indentation level
    Zabbix监控mysql主从复制状态
    Zabbix监控php-fpm status
  • 原文地址:https://www.cnblogs.com/bingabcd/p/7618115.html
Copyright © 2011-2022 走看看