运维堡垒机---基于paramiko模块
更新:HHH   时间:2023-1-7



话不多说,有图为证,主要是表达能力问题,呵呵。。。。

简单描述:

堡垒机一般都独立出来,单独部署,通俗点说就是跳板机,中控机。

须通过堡垒机才能连接到远程目的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
返回开发技术教程...