"""存储全部主机""" hostname = models.CharField(max_length=64) ip_addr = models.GenericIPAddressField(unique=True) port = models.PositiveSmallIntegerField(default=22) idc = models.ForeignKey("IDC") enabled = models.BooleanField(default=True) #是否已启用,表明这台机器是否能登录 def __str__(self): return self.ip_addr
一、hostname须要惟一的?python
它不必定惟一,有多是重的web
二、这台机器的用户名密码要不要在这存?算法
不用,由于主机和用户名密码是一对多的 关系,一条存的下吗?
是否已启用,表明这台机器是否能登录django
class IDC(models.Model): name = models.CharField(max_length=64,unique=True) def __str__(self): return self.name
一我的管理500台机器我给他一个一个添加吗?,我是否是要建立一个主机组app
class HostGroup(models.Model): """主机组""" name = models.CharField(max_length=64, unique=True) hosts = models.ManyToManyField("Host") def __str__(self): return self.name
有些远程的主机不能密钥,因此必须存密码ssh
class RemoteUser(models.Model): """存储远程用户名密""" username = models.CharField(max_length=64) auth_type_choices = ((0,'ssh/password'),(1,'ssh/key')) auth_type = models.SmallIntegerField(choices=auth_type_choices,default=0) password = models.CharField(max_length=128,blank=True,null=True) hosts = models.ManyToManyField("Host") def __str__(self): return "%s(%s)%s" %( self.username,self.get_auth_type_display(),self.password)
一、username要不要惟一?加密
为何不用,这个帐户里面存的是多台机器的用户名密码spa
二、可不能够有密钥和密码?设计
有些机器用密码,有些机器用密码,你总的区分吧!blog
三、password在这个存的是什么格式的?
四、若是选择是密钥的时候?还须要存用户名和密码吗?
不须要
class UserProfile(models.Model): """堡垒机的帐户""" user = models.OneToOneField(User) name = models.CharField(max_length=64) bind_hosts = models.ManyToManyField("BindHost",blank=True) host_groups = models.ManyToManyField(HostGroup) def __str__(self): return self.name