Django构建自动化运维资产管理系统

简介:

   随着企业服务器数量越来越多,当到达几百台,上千台服务器之后,服务器资产管理也逐渐繁杂,每天如果通过人工统计检测会浪费大量的时间,而且有可能会有小小的疏忽而遗漏,那有没有什么开源的管理系统自动去管理呢,方法是必须滴有咯,我这里采用最简单的Django admin框架来实现。实现方法非常简单,这里做记录,希望跟大家一起交流。

  • Django开发简介:

这里采用Django MVC开发模型,简单来说MVC 是一种软件开发的方法,它把代码的定义和数据访问的方法(模型)与请求逻辑 (控制器)还有用户接口(视图)分开来。

      在django里面,我们讲采用models.py 、views.py、urls.py以及html模板文件来实现这个需求。

  • Django安装部署:

Django的安装可以参考我的上一篇文章,这里直接创建工程和app名称。

    1、创建asset工程:

1
django-admin.py  startproject Asset

    2、配置数据库:

编辑settings.py文件,修改存储方式为mysql,同时设置数据库名和密码,保存退出。如下图配置:

wKiom1QioRLTQhUAAAGv6e7aWG0822.jpg

数据库信息配置完毕后,创建名为asset的数据库,并设置密码。

同时修改setings.py,找到APPS模块处,添加我们的工程名,Asset,如下图添加方法:

wKioL1QioXOBhtfPAAF5xQ5x0qk011.jpg

    3、新建models.py文件:

采用models方式创建数据库表和字段,语句如下:

1
2
3
4
5
6
7
8
9
10
11
from   django.db   import   models
class  asset_system(models.Model):
         ip_info  = models.CharField(max_length = 50 )
         serv_info  = models.CharField(max_length = 50 )
         cpu_info  = models.CharField(max_length = 50 )
         disk_info  = models.CharField(max_length = 50 )
         mem_info  = models.CharField(max_length = 50 )
         load_info  = models.CharField(max_length = 50 )
         mark_info  = models.CharField(default = 'beijing_idc' ,max_length = 50 ,blank = True )
         def  __unicode__( self ):
                 return  self .ip_info models.py

文件创建成功后,然后返回上一级目录(manage.py目录),执行:

1
python manage.py validate 返回为:0 errors found表示检查数据编写正确。
1
然后把数据写入到数据库中,执行命令:python manage.py  syncdb

会提示输入用户名和邮箱和密码,这里的用户名和密码为访问django  admin后台需要输入的用户名和密码。

    4、修改settings.py和urls.py

分别修改如下:

把settings.py里面: 'django.contrib.admin',前面#号注释掉,同时注释掉'django.contrib.admindocs',前的#号即可,如下图:

wKioL1QioojwdxlsAAIHIIuEo8c990.jpg

把urls.py里面,将如下三行#号去掉即可:

1
2
3
from  django.contrib   import  admin
admin.autodiscover()
url(r '^admin/' ,include(admin.site.urls)),

同时添加如下行,引用settings文件配置:

1
from  django.conf  import  settings

如下图:

wKioL1QioqaioXURAAHdtDOmVdk851.jpg

  • Django Admin后台管理:

    配置完毕后,登录后台管理系统,重启python app,然后访问报错404,报错的原因是由于没有添加/admin/二级目录访问,输入/admin/进入这个页面,代表django admin 配置成功。登录后截图如下:

wKioL1Qiou3CxBFxAAGOHcKdt2g441.jpg

    默认没有我们创建的数据库表,那如何在界面显示呢?如下在工程应用目录(与models.py同级),新建一个admin.py文件,写入如下内容:

1
2
3
4
5
6
from  django.contrib  import  admin
from  asset.models  import  asset_system
class  serversadm(admin.ModelAdmin):
         list_display  = ( 'ip_info' , 'serv_info' , 'cpu_info' , 'disk_info' , 'mem_info' , 'load_info' , 'mark_info' )
         search_fields  =  ( 'ip_info' , 'cpu_info' )
admin.site.register(asset_system,serversadm)

配置完后,重启python,然后刷新一下页面,默认会出现403的提示“CSRF verification failed.Request aborted.,我们需要把settings.py里面如下行临时先注释掉(跟跨越请求有关):

1
#'django.middleware.csrf.CsrfViewMiddleware',

然后刷新,会看到新添加的一个asset_system表,如下图:

wKiom1Qio_SjbnbSAAGTq1sXvYE429.jpg

    然后往里面添加多条cpu、硬盘、内存信息即可(可以使用脚本导入数据库),为了更好的样式,我们可以安装插件django-admin-bootstrapped-1.6.8.tar.gz,安装方法很简单,解压python setup.py install即可。

然后在settings.py 里面找到:'django.contrib.admin'这一行,在这行之前加入如下语句:

1
2
'django_admin_bootstrapped.bootstrap3' ,
'django_admin_bootstrapped' ,

    就引用了bootstrap样式,界面显示效果就比较美观,好的由于时间原因,博文就到此结束,后期会增加更多功能和界面。

wKiom1QipETzVORDAAN6bfgNSus011.jpg

 附图二,后期可以把所有的功能整合到一个html页面里面,如下图所示:

wKiom1QipOWxRqYIAAExRfSSkbo247.jpg


本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1557846

相关文章
|
1月前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
50 1
|
1月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
27天前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
82 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
12天前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
|
17天前
|
缓存 监控 安全
公司电脑监控软件的 Gradle 构建自动化优势
在数字化办公环境中,公司电脑监控软件面临代码更新频繁、依赖管理和构建复杂等挑战。Gradle 构建自动化工具以其强大的依赖管理、灵活的构建脚本定制及高效的构建缓存与增量构建特性,显著提升了软件开发效率和质量,支持软件的持续更新与优化,满足企业对员工电脑使用情况的监控与管理需求。
30 3
|
29天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
57 9
|
27天前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
40 5
|
1月前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
1月前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
82 1
|
1月前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####

热门文章

最新文章