话不多说,有图为证,主要是表达能力问题,呵呵。。。。
简单描述:
堡垒机一般都独立出来,单独部署,通俗点说就是跳板机,中控机。
须通过堡垒机才能连接到远程目的ip。
堡垒机将某用户的所有操作都记录在案----堡垒机的意义
一,流程图描述的功能已经非常清楚了
用户须先登陆堡垒机,然后能完成下面3个功能
1,单台机器登陆--->所有操作入库
2,批量机器执行命令--->所有操作入库
3,查看操作记录
二,堡垒机的意义(自己理解):
1,操作简单化,运维人员再也不用记服务器的username/password,直接选择某ip即可登陆操作;
2,操作规范化,所有运维人员统一入口,分用户记录所有操作。
3,责任清晰化,将某登陆用户的所有操作都记录在数据库,出问题有据可查;
三,准备工作:
1,须安装paramiko源码,要用到里面的两个文件,在那两个文件的基础上进行二次开发;
参考http://yunweipy.blog.51cto.com/10683003/1695014
2,两个文件为:paramiko-1.7.7.1/demo.py;paramiko-1.7.7.1/interactive.py;
3,自己写程序入口,登陆,验证。调用demo模块。完成所有功能;
4,建库,mysql or oracle,都可以;
四,源码分析
运行python paramiko-1.7.7.1/demo.py,会弹出'*** Here we go!',搜索这个字符串,然后后往下看,找到interactive.interactive_shell(chan),跳到interactive模块的interactive_shell方法中,分析nteractive_shell。
找到
def interactive_shell(chan, loginuser, username, ip):
if has_termios:
posix_shell(chan, loginuser, username, ip)
else:
windows_shell(chan)
然后分析posix_shell代码,可能也就20行代码,这是完成linux堡垒机的核心代码,在此基础上进行二次开发。
待续。。。
附件:http://down.51cto.com/data/2366132