[svc]堡垒机模型设计初步
models
from django.contrib.auth.models import AbstractUser
from django.db import models
# Create your models here.
class RemoteUser(models.Model):
"""主机账号"""
auth_type = models.SmallIntegerField(choices=((0, 'sshpass'), (1, 'sshkey')), default=0)
username = models.CharField(max_length=30)
password = models.CharField(max_length=60, blank=True, null=True)
class Meta:
unique_together = ("auth_type", "username", "password")
verbose_name = "主机账号"
verbose_name_plural = verbose_name
def __str__(self):
return "%s/%s" % (self.username, self.password)
class HostGroup(models.Model):
"""主机组"""
name = models.CharField(max_length=30)
# hosts = models.ForeignKey(Hosts, on_delete=models.CASCADE)
class Meta:
verbose_name = "主机组"
verbose_name_plural = verbose_name
def __str__(self):
return "%s" % (self.name)
class Hosts(models.Model):
"""主机"""
name = models.CharField(max_length=30, unique=True)
ip = models.GenericIPAddressField(unique=True)
port = models.SmallIntegerField(default=22)
idc = models.ForeignKey("IDC", on_delete=models.CASCADE)
# remote_user = models.ManyToManyField(RemoteUser)
host_group = models.ForeignKey(HostGroup, on_delete=models.CASCADE)
class Meta:
verbose_name = "主机"
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class HostToRemoteUser(models.Model):
"""主机和账号绑定"""
host = models.ForeignKey(Hosts, on_delete=models.CASCADE)
remote_user = models.ForeignKey(RemoteUser, on_delete=models.CASCADE)
class IDC(models.Model):
name = models.CharField(max_length=30, unique=True)
class Meta:
verbose_name = "IDC机房"
verbose_name_plural = verbose_name
def __str__(self):
return self.name
# class UserProfile(AbstractUser):
# # host_to_remote_users = models.ManyToManyField("HostToRemoteUser", blank=True, null=True)
# # host_groups = models.ManyToManyField("HostGroup", blank=True, null=True)
# tel = models.CharField(max_length=30)
#
# class Meta:
# verbose_name = "用户信息"
# verbose_name_plural = verbose_name
#
# def __str__(self):
# return self.username
admin
from django.contrib import admin
from .models import RemoteUser, Hosts, HostGroup, IDC, HostToRemoteUser
# Register your models here.
class RemoteUserAdmin(admin.ModelAdmin):
"""主机账号"""
list_display = ("username", "password")
class HostsAdmin(admin.ModelAdmin):
"""主机"""
list_display = ("name", "ip", "port","idc","host_group")
class HostGroupAdmin(admin.ModelAdmin):
"""主机组"""
list_display = ("name",)
class IDCAdmin(admin.ModelAdmin):
"""主机组"""
list_display = ("name",)
class HostToRemoteUserAdmin(admin.ModelAdmin):
"""主机组"""
list_display = ("host", "remote_user")
admin.site.register(RemoteUser, RemoteUserAdmin)
admin.site.register(Hosts, HostsAdmin)
admin.site.register(HostGroup, HostGroupAdmin)
admin.site.register(HostToRemoteUser, HostToRemoteUserAdmin)
admin.site.register(IDC, IDCAdmin)
[svc]堡垒机模型设计初步的更多相关文章
- IronFort---基于Django和Websocket的堡垒机
WebSSH有很多,基于Django的Web服务也有很多,使用Paramiko在Python中进行SSH访问的就更多了.但是通过gevent将三者结合起来,实现通过浏览器访问的堡垒机就很少见了.本文将 ...
- 开发基于Django和Websocket的堡垒机
WebSSH有很多,基于Django的Web服务也有很多,使用Paramiko在Python中进行SSH访问的就更多了.但是通过gevent将三者结合起来,实现通过浏览器访问的堡垒机就很少见了.本文将 ...
- Python之路第一课Day9--随堂笔记之一(堡垒机实例以及数据库操作)未完待续....
一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- Python之路:堡垒机实例
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 ...
- python远程连接paramiko 模块和堡垒机实现
paramiko使用 paramiko模块是基于python实现了SSH2远程安全连接,支持认证和密钥方式,可以实现远程连接.命令执行.文件传输.中间SSH代理功能 安装 pip install pa ...
- python学习笔记-(十三)堡垒机
1.课前准备: 本次学习堡垒机相关知识:之前,需要安装Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. 前提: python3.5程序安装到默认路径下并已添加pa ...
- Python开发【第九章】:堡垒机实例
一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作 模块安装 C:\Program Files\Python 3.5\Scri ...
- 利用paramiko模块实现堡垒机+审计功能
paramiko模块是一个远程连接服务器,全真模拟ssh2协议的python模块,借助paramiko源码包中的demos目录下:demo.py和interactive.py两个模块实现简单的堡垒机+ ...
- Python之路-python(堡垒机)
运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的 ...
随机推荐
- 通过xtrabackup工具对mysql数据库做全备
需求描述: 使用xtrabackup工具对mysql实例中的所有的数据库进行备份,并且将备份的过程输出到指定的日志文件中. 操作过程: 1.使用xtrabacup工具备份mysql实例 xtrabac ...
- POJ 3211 Washing Cloths(01背包变形)
Q: 01背包最后返回什么 dp[v], v 是多少? A: 普通01背包需要遍历, 从大到小. 但此题因为物品的总重量必定大于背包容量, 所以直接返回 dp[V] 即可 update 2014年3月 ...
- 简单易懂的snmpd.conf配置文件说明
转自http://blog.chinaunix.net/u2/61187/showart_689604.html 用 snmp+mrtg 可以很好的实现对局域网内服务器状态的监控. 现在就以 ...
- Linux wc 命令
wc命令可以用来统计文件的行数 .单词数 .字符数,用法如下: [root@localhost ~]$ wc 1.txt # 统计文件的行数.单词数.字符数 2 4 24 1.txt [root@lo ...
- CentOS6.4环境下布署LVS+keepalived笔记
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://400053.blog.51cto.com/390053/713566 环境: 1 ...
- android中必备的接口回调用法
1 ,这个方法很常见,本人觉得也很实用,分享下吧 public class DirverDistanceTool { public void getDirverDistance(LatLng star ...
- .Net内存溢出 System.OutOfMemoryException
内存溢出常见的情况和处理方式: http://outofmemory.cn/c/dotNet-outOfMemoryException MSDN中关于processModel的文档 https://m ...
- Neutron SDN 手动实现手册
安装架构介绍 本文旨在通过自己搭建类似neutron (openvswitch + gre) 实现SDN 的环境,学习了解其工作原理,模拟核心原理,比如:同一租户自定义网络 instance 互通,手 ...
- HUB、SPAN、TAP比较
在获取数据包进行网络分析时,常用的方法有三种:HUB.SPAN和TAP. 一 HUB HUB 很“弱智”,但这种方法却是最早的数据包获取方法.HUB是半双工的以太网设备,在广播数据包时,无法同时 ...
- nexus使用方法
转自:https://www.cnblogs.com/grey-wolf/p/6481166.html centos7搭建nexus maven私服 前置条件: 1.安装jdk,可参考 http: ...