堡垒机
windows ,linux 都通过测试
初始化说明:
#进入根目录
1、初始化表结构 #python3 bin/start.py syncdb
2、创建堡垒机用户 #python3 bin/start.py create_users -f share/examples/new_user.yml
3、创建分组 #python3 bin/start.py create_groups -f share/examples/new_groups.yml
4、创建远程主机 #python3 bin/start.py create_hosts -f share/examples/new_hosts.yml
5、创建远程主机用户(绑定堡垒机用户与分组)#python3 bin/start.py create_remoteusers -f share/examples/new_remoteusers.yml
6、绑定远程主机与远程主机用户【远程绑定组合】(关联远程绑定组合与堡垒机用户、关联远程绑定组合与分组)
#python3 bin/start.py create_bindhosts -f share/examples/new_bindhosts.yml
7、登陆堡垒机 #python3 bin/start.py start_session (示例用户: uge3 密码:uge3)
8、查看用户日志 #python3 bin/start.py audit -n uge3
plj/#程序目录
|- - -__init__.py
|- - -bin/#启动目录
| |- - -__init__.py
| |- - -start.py#启动
|
|- - -conf/#配置目录
| |- - -__init__.py
| |- - -action_registers.py#开始参数配置文件
| |- - -settings.py#配置文件
|
|- - -modules/#主逻辑目录
| |- - -__init__.py
| |- - -actions.py#开始函数 帮助信息
| |- - -db_conn.py#数据库连接配置
| |- - -interactive.py#ssh命令重写
| |- - -models.py#表结构 类
| |- - -ssh_login.py#登陆远程主机调用
| |- - -utils.py#工具函数
| |- - -views.py#主要逻辑函数
|
|- - -REDMAE
|
|- - -share/#添加堡垒机用户远程主机分组远程主机用户 目录
| |- - -examples/#文件目录
| |- - -new_bindhosts.yml/#远程主机用户与远程主机 组合表(组合表与 分组)(堡垒机用户与组合表) 创建 示例
| |- - -new_groups.yml/#分组创建 示例( 堡垒机用户与 分组)
| |- - -new_hosts.yml/#远程主机创建 示例
| |- - -new_remoteusers.yml/#远程主机用户创建 示例
| |- - -new_user.yml/#堡垒机用户机创建 示例
plj/#程序目录
|- - -__init__.py
|- - -bin/#启动目录
| |- - -__init__.py
| |- - -start.py#启动
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #Python 4 #17-7-14 下午6:22 5 #__author__='Administrator' 6 7 import os,sys 8 9 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 10 11 #print(BASE_DIR) 12 sys.path.append(BASE_DIR)#加入环境变量 13 14 if __name__ == '__main__': 15 from modules.actions import excute_from_command_line 16 excute_from_command_line(sys.argv)
|- - -conf/#配置目录
| |- - -__init__.py
| |- - -action_registers.py#开始参数配置文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #_*_coding:utf-8_*_ 2 import os,sys 3 4 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 5 6 sys.path.append(BASE_DIR)#加入环境变量 7 8 from modules import views 9 10 ''' 11 actions = { 12 'start_session': views.start_session,#开始程序 13 'stop': views.stop_server,#停止 14 'syncdb': views.syncdb,#创建表结构 15 'create_users': views.create_users, 16 'create_groups': views.create_groups, 17 'create_hosts': views.create_hosts, 18 'create_bindhosts': views.create_bindhosts, 19 'create_remoteusers': views.create_remoteusers, 20 } 21 ''' 22 actions = { 23 'audit':views.audit,#查看日志 24 'start_session': views.start_session,#开始程序 25 'stop': views.stop_server,#停止 26 'syncdb': views.syncdb,#创建表结构 27 'create_users': views.create_users,#创建堡垒机用户 28 'create_groups': views.create_groups,#创建分组 29 'create_hosts': views.create_hosts,#创建远程主机 30 'create_remoteusers': views.create_remoteusers,# #创建远程主机用户 31 'create_bindhosts': views.create_bindhosts,# 远程主机与远程主机用户 绑定 关联堡垒机用户与 32 #'ass_bind_group': views.ass_bindhost_group,#远程主机与远程主机用户组合 与 分组 33 34 35 } 36 37 actionses = { 38 'audit [查看日志]':views.audit,#查看日志 39 'start_session [开始程序]': views.start_session,#开始程序 40 'stop [停止]': views.stop_server,#停止 41 'syncdb [创建表结构]': views.syncdb,#创建表结构 42 'create_users [创建堡垒机用户]': views.create_users,#创建堡垒机用户 43 'create_groups [创建分组]': views.create_groups,#创建分组 44 'create_hosts [创建远程主机]': views.create_hosts,#创建远程主机 45 'create_remoteusers [创建远程主机用户]': views.create_remoteusers,# #创建远程主机用户 46 'create_bindhosts [绑定堡垒机用户与远程主机用户]': views.create_bindhosts,#绑定堡垒机用户与远程主机用户 47 #'ass_bind_group [绑定远程主机+远程主机用户组合与分组]': views.ass_bindhost_group,#远程主机与远程主机用户组合 与 分组 48 49 50 }
| |- - -settings.py#配置文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import os,sys 2 3 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4 5 USER='root'#用户名 6 PASSWORD='root'#密码 7 HOST_IP='127.0.0.1'#数据库地址 8 PORT="3306"#数据库端口 9 DB='little_finger'#库名 10 DB_CONN ="mysql+pymysql://"+USER+":"+PASSWORD+"@"+HOST_IP+":"+PORT+"/"+DB+"?charset=utf8"#连接参数 11 #DB_CONN ="mysql+pymysql://root:root@localhost:3306/"+DB+"?charset=utf8"#连接参数
|- - -modules/#主逻辑目录
| |- - -__init__.py
| |- - -actions.py#开始函数 帮助信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #Python 4 #17-7-14 下午6:25 5 #__author__='Administrator' 6 import os,sys 7 8 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 9 10 sys.path.append(BASE_DIR)#加入环境变量 11 12 from conf import settings 13 from conf import action_registers 14 from modules import utils 15 16 17 def help_msg():#帮助信息 18 ''' 19 print help msgs 20 :return: 21 ''' 22 print("