您的位置:首页 > 运维架构

Imax运维平台项目记录

2017-02-12 00:00 176 查看
imax运维平台其实是自己搞的一个公司内部的运维管理系统。它目前有4个模块组成。分别是人员管理,资产管理,工单处理与文件上传。

目录

平台使用到的知识

各模块的数据表结构展示

效果截图

平台使用到的知识

python(2.7.11)

django(1.9.4)

html

jquary

bootstrap

各模块的数据表结构展示

人员管理(cms):
class Department(models.Model):
d_id = models.AutoField(primary_key=True)
d_name = models.CharField(max_length=40,unique=True,blank=False)
d_ctime = models.DateTimeField(auto_now=False, auto_now_add=True)
d_mtime = models.DateTimeField(auto_now=True, auto_now_add=False)
def unicode(self):
return self.d_name
class Users(models.Model):
u_id = models.AutoField(primary_key=True)
u_name = models.CharField(max_length=30)
u_password = models.CharField(max_length=50)
u_email = models.EmailField(max_length=50)
u_role = models.CharField(max_length=30)
u_purview = models.IntegerField(default=1)    ##职责,权限
u_ctime = models.DateTimeField(auto_now=False, auto_now_add=True)
u_mtime = models.DateTimeField(auto_now=True, auto_now_add=False)
u_status = models.BooleanField(default=True)
department = models.ForeignKey(Department,on_delete=models.SET_NULL,null=True)
# u_role , 1:other,2:leader
# u_purview , 0:leader,1:other
def unicode(self):
return str(self.u_name)


资产管理模块(asset):
class AssetGroup(models.Model):
name = models.CharField(max_length=80, unique=True)
comment = models.CharField(max_length=160, blank=True, null=True)

def __unicode__(self):
return str(self.name)

class Asset(models.Model):
"""
asset  server modle
"""
ip = models.GenericIPAddressField(unique=True,verbose_name=u"主机IP",null=True)
hostname = models.CharField(unique=True, max_length=128, verbose_name=u"主机名",null=True)
group=models.ForeignKey(AssetGroup,null=True,blank=True,on_delete=models.SET_NULL, verbose_name=u'主机组')
cloud = models.CharField( max_length=256,verbose_name=u"云服务商",null=True)
cpu = models.CharField(max_length=64,verbose_name=u'CPU',null=True)
memory = models.CharField(max_length=128,verbose_name=u'内存',null=True)
disk = models.CharField(max_length=1024,verbose_name=u'硬盘',null=True)
system_type = models.CharField(max_length=32,verbose_name=u"系统类型",null=True)
date_added = models.DateTimeField(auto_now=True,null=True)
comment = models.CharField(max_length=128, blank=True, null=True, verbose_name=u"备注")

def __unicode__(self):
return self.ip

class DB_Asset(models.Model):
ip=models.GenericIPAddressField(unique=True,verbose_name=u'数据库IP')
hostname=models.CharField(unique=True,max_length=128,verbose_name='数据库名')
group=models.ForeignKey(AssetGroup,blank=True,null=True,on_delete=models.SET_NULL,verbose_name=u'所在分组')
cloud = models.CharField( max_length=256,verbose_name=u"云服务商",null=True)
db_size=models.CharField(max_length=12,verbose_name=u'数据库大小')
date_added=models.DateTimeField(auto_now_add=True,null=True)
comment=models.CharField(max_length=128,blank=True,null=True,verbose_name=u'备注')

def __unicode__(self):
return self.ip


工单模块(order):

class New_O
3ff0
rder(models.Model):
'''
工单类型,新建工单
'''

#order_id = models.IntegerField(verbose_name=u'工单号',default=num)  #autofield()只是为模型创建一个自增长的字段,所做的仅仅是创建。自增的工作由所使用的数据库完成。
order_id = models.AutoField(primary_key=True)  #autofield()只是为模型创建一个自增长的字段,所做的仅仅是创建。自增的工作由所使用的数据库完成。
type_name = models.CharField(max_length=50)
title=models.CharField(max_length=50,null=True,blank=True)
executor = models.ForeignKey(Users,null=True,blank=True)
creator = models.CharField(max_length=8)
content = models.TextField()
status=models.CharField(max_length=15,default=u'新建')
ctime = models.DateTimeField('创建时间',auto_now=False, auto_now_add=True) ## auto_now  每次修改导致时间更新,而 auto_now_add 时间定死在创建时的时间
mtime=models.DateTimeField('修改时间',default=timezone.now,auto_now_add=False)

def __unicode__(self):
return str(self.order_id)
class Meta:
ordering=['order_id']

# 工单审批过程表
class Run_Order(models.Model):
order_id=models.ForeignKey(New_Order,blank=True,null=True)
executor = models.ForeignKey(Users,null=True,blank=True)
reason=models.CharField(max_length=500)
status=models.CharField(max_length=15,default=u'已审批,需重新修改')
time = models.DateTimeField(auto_now=True)

def __unicode__(self):
return self.status

## 我创建的工单表
class Owner_Order(models.Model):
order_id=models.ForeignKey(New_Order,blank=True,null=True)
user=models.CharField(max_length=15)
status=models.CharField(max_length=15,null=True,blank=True)
time=models.DateTimeField(auto_now=True)
def __unicode__(self):
return self.status

## 待审批的工单表
class Check_Order(models.Model):
user=models.ForeignKey(Users,null=True,blank=True)
status=models.CharField(max_length=5)
def __unicode__(self):
return self.status


效果截图

1.首页



2.用户页面展示



3.资产展示



4.新建工单



5.工单审批页面



6.个人创建的工单查看



7.工单历史溯源

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: