APP下载

基于Django的运维自动化系统设计

2016-11-02白文秀吴瑞苗

智能计算机与应用 2016年3期
关键词:界面设计脚本运维

白文秀,吴瑞苗

(吉林师范大学计算机学院,吉林四平 136000)

基于Django的运维自动化系统设计

白文秀,吴瑞苗

(吉林师范大学计算机学院,吉林四平136000)

本文的运维自动化系统后台采用Django框架,前端使用ExtJS框架,通过Ajax进行通讯,后台任务引擎的核心采用Salt技术。系统通过脚本与Web结合的方式,把运维日常需要登录机器、不透明的操作,转换成成标准化、可视化的流程,帮助运维迅速完成繁琐、价值低的工作。

Django;框架;运维自动化

0 引 言

近年来,互联网上颇多病毒的爆发、肆虐及蔓延,使得整个IT行业均已认识到对于终端以及服务器管理的重要性。随着Linux系统及虚拟化技术的诞生和发展,运维自动化的生态环境也随即改变,从仅面向单纯支持Window系统的PC设备,延伸拓展到现如今的面向用户、面向业务的各类设备。

运维自动化系统通过集中管理服务器信息、提供流程化的业务操作,帮助运维管理、操作大批量的服务器,将日常繁琐、重复、价值低的工作简化为分体独立、且真实可见的流程,因而能极大地提高运维的工作效率,减少人为故障的发生[1]。特别地,当故障发生时,能够推动运维更快地解决问题,使设计服务尽快恢复正常运行[2]。

1 技术简介

1.1Django简介

Django由Kansas州中的一个网络开发小组通过使用Python编撰开发而成,主要采用了MVC的软件设计模式。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)[3].

1.2ExtJS简介

ExtJS是一个利用JavaScript进行开发而成功推出的前端框架,通常使用Ajax与后台来建立通信[4]。ExtJS是一款典型的Web富客户端框架,提供了多种控件以实现各种各样的功能。

2 系统功能设计

本运维自动化系统由9个模块组成,可描述为:首页、项目管理、服务器管理、脚本管理、执行账户管理、脚本执行、常用流程、新建流程和执行历史[5],如图1所示。具体地,系统组成中各模块的功能实现可给出如下设计论述。

图1 系统模块组成Fig.1 System modules

2.1首页模块

本模块用于展示业务的主机数、常用流程数、以及任务执行概况,帮助用户准确把握业务的整体情况。

2.2项目管理模块

该模块仅针对仅管理员才有权使用,完成对业务和普通用户的管理,可实现新增业务、删除业务、新增用户、删除用户等操作。

2.3执行账户管理模块

执行账户决定了任务执行时的权限,是任务在服务器上的执行身份。本模块用于管理执行账户,主要功能包括用户可新建和删除执行账户名。

2.4服务器管理模块

本模块提供对服务器信息的管理功能,管理员通过该项功能控制普通用户对服务器的访问权限,以最大限度地保证服务器的运行安全。模块功能主要包括:

1)用户新增、修改、删除服务器信息;

2)管理上传服务器的机房、公网IP、内网IP、管理网IP和所有者信息;

3)管理者设置用户的服务权限;

4)拥有服务器权限的普通用户可增加、修改服务器的描述信息。

2.5脚本管理模块

本模块用于对脚本实施管理,普通用户仅能查看、修改和删除用户自身创建的脚本,而管理员则能够管理所有的脚本。

2.6脚本执行模块

本模块的设计是为了方便用户临时执行一个脚本,该脚本内容不会被记入保存。若脚本需要传入参数,可通过输入脚本参数而给出设计实现,指定执行账户以及选择目标服务器,执行脚本。

2.7新建流程模块

本模块主要提供新建流程功能。在创建流程完成后,可选择直接执行流程,流程不会特别保存;或者选择保存流程,而后在常用流程模块中查看、执行该流程。

2.8常用流程模块

本模块功能主要分为管理流程和执行流程,普通用户有权管理、执行其名下配置的流程;管理员可以管理所有已保存的流程。具体分述如下:

1)管理流程:用户可查看、修改、删除自己创建的流程,但正在执行中的流程不能被删除;

2)执行流程:用户可指定某个流程执行。

2.9常用流程模块

本模块主要提供查看执行详情功能,执行历史分为2类,即:脚本执行历史和流程执行历史。

3 系统数据库设计

系统的数据库总共包含12张表,如表1所示。

表1 本系统应用数据库表Tab.1 The application database tables

4 系统界面设计

系统设计的各类主要页面分别有登录界面、首页界面、账户管理界面、脚本编辑界面、流程界面和执行历史界面等,下面则以首页界面和管理界面为例对界面设计展开阐释说明。

4.1首页界面设计

本系统首页界面如图2所示,该系统界面采用了border布局。

1)north方向是一个工具栏,显示了本系统的名称和当前登录用户,同时还有一个当前业务的下拉选择框,用于确定当前操作的执行业务;

2)west方向是一个树形菜单,除了首页,其他菜单都至少还设计有一个子菜单;

3)center方向是首页展示的内容。对于其他界面来说,center方向是其他的内容,但是north和west方向界面则是固定的。

图2 首页界面Fig.2 Home Interface

4.2管理界面设计

管理模块的界面设计如图3所示。由图3可知,搜索框处于上部,而下部是内容的展示框,展示全部的或者查找到的内容,中部将根据不同管理模块的输入要求而各显不同内容。

图3 账户管理界面Fig.3 Account Management Interface

5 系统测试

5.1测试环境

服务器端:操作系统CentOS7,软件Python2.7、Django1.9、MySQL5.6、Nginx1.8、uWSGI2.0、Memcached1.4、Celery3.1、Redis3.0。

客户端:操作系统Window7、Chrome浏览器。

5.2测试用例

本节以服务器管理测试和脚本管理测试为例简要介绍了本系统主要应用的部分测试用例,测试结果如表2和表3所示。

表2 服务器管理测试用例Tab.2 Test case of server management

表3 脚本管理测试用例Tab.3 Test case of script manager

5.3测试结论

通过5.2的测试可知,本系统可提供有效的权限隔离,而针对不同类型的用户,则将提供相应的业务内容权限,进而保证了信息管理和任务执行的安全。

6 结束语

基于Django的运维自动化系统选用了B/S模式,对用户的输入进行了严格的过滤,同时在权限上实现了业务和服务器权限的划分,保证了用户创建的服务器、脚本、流程信息和任务执行的安全性。系统设计的脚本和流程,能够帮助运维完成大多数的日常工作,达到了系统的设计目标,并将在日后使用过程中予以不断地拓展完善,研究下一步还将为本系统增加初始化服务器功能和故障报警功能[5]。

[1]毛承国,张卫华,张进铎等.大规模集群运维自动化的探索与实践[J].信息安全与技术,2014(2):60-62,73.

[2]宋义华,班孝明.IT应用运维自动化研究与应用[J].网络安全技术与应用,2014(9):224-225.

[3]刘班.基于Django快速开发Web应用[J].电脑知识与技术:学术交流,2009,5(7):1616-1618.

[4]陈道鑫,宋绍云,袁中旺,等.ExtJS框架在Web软件开发中的应用[J].电脑知识与技术,2011,7(9):2044-2047.

[5]王大东,刘竞遥,侯锟,等.基于Web的计算机考试系统设计与实现[J].吉林师范大学学报(自然科学版),2013(3):45-47.

[6]梁春丽.IT运维管理自动化是关键[J].金融科技时代,2012(2):35-39.

Design of operationand maintenance automation system based on Django

BAI Wenxiu,WU Rui-maio
(Computer College,Jinlin Normal University,Siping Jilin 136000,China)

This paper presents the operation and maintenance automation system,in which the background using Django framework,the front-end using ExtJS framework,and through the Ajax communication,the core of the background task engine using Salt technology. The system combines script with Web,and converts opaque operations and the daily operation and maintenance which need to log on the machine,into the standardized,visualization process.The research helps operation and maintenance quickly complete the tedious,low value work.

django;framework;operation automation

TP311

A

2095-2163(2016)03-0000-00

白文秀(1976-),男,硕士,讲师,主要研究方向:软件工程。

猜你喜欢

界面设计脚本运维
酒驾
中医养生APP界面设计
“共享员工”平台界面设计
中国传统元素在界面设计中的应用
安奇奇与小cool 龙(第二回)
面向智能手机的UI界面设计
运维技术研发决策中ITSS运维成熟度模型应用初探
风电运维困局
杂乱无章的光伏运维 百亿市场如何成长
快乐假期