• CMDB


    CMDB实现的四种方式

    方式一   Agent方式

    #本质就是在各个服务器上部署Agent脚本,执行subprocess.getoutput()命令,然后将每台机器上的执行结果,返回给API,通过数据的筛选,存入数据库
    优点:速度快
    缺点:需要每台服务器部署一个Agent

    方式二、ssh类实现方式(基于Paramiko模块)

    中控机通过Paramiko模块(py模块)登陆到各个服务器上,然后执行命令的方式取获取各个服务器上的信息,中控机把服务器的信息发送给API,对数据进行处理,存入数据库
    #优点:不需要各个服务器部署Agent
    #缺点:需要登陆各个服务器,速度慢

    pip install paramiko
    
    import paramiko
    
    #创建SSH对象
    ssh = paramiko.SSHClient()
    
    #允许连接不在know_host文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    #连接服务器
    ssh.connect(hostname='10.0.0.100',port=22,username='root',password='1')
    stdin ,stdout ,stderr = ssh.exec_command('hostname')
    
    #执行命令
    result = stdout.read()
    print(result)
    
    #关闭连接
    ssh.close()
    大致核心代码

    方式三  salt stack方式

    使用第三方工具,在中控机上装salt-master,待采集信息的服务器装salt-minion,不需要登陆每台服务器,类似于两套生产者消费者模型,分别把数据存到队列中
    salt-minion从队列中拿到命令,执行命令,把结果放到队列中,salt-master从队列中拿到结果,发送给API
    #优点:快,开发成本低, #缺点:依赖于第三方工具

    1、安装与配置

    master端
    #1安装salt-master
     yum install salt-master
    
    #2修改配置文件
        vim /etc/salt/master
    
    #3启动
        service salt-master start
    
    
    #slave端
    #1安装salt-minion
        yun install salt-minion
    
    #2修改配置文件
        master:10.211.55.4            #master的地址
    或
        master:
            -10.211.55.4
            -10.211.55.5
        random_master:True
        id:c2.salt.con        #客户端在salt-master中显示的唯一ID
    
    #3启动
        service salt-minion start
    View Code

    2、授权

    salt-key-L                 # 查看已授权和未授权的slave
    salt-key -a  salve_id      # 接受指定id的salve
    salt-key -r  salve_id      # 拒绝指定id的salve
    salt-key -d  salve_id      # 删除指定id的salve

    3、执行命令

    在master服务器上对salve进行远程操作

    salt 'c2.salt.com' cmd.run 'ifconfig'

    基于API的方式

    import salt.client
    local = salt.client.LocalClient()
    result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])
  • 相关阅读:
    xml读写
    scrollWidth,clientWidth与offsetWidth的区别
    DIV+CSS设计时浏览器兼容性
    访问IIS客户端出现server application error解决方案
    网站局域网内不能访问解决方法之一
    xml学习笔记(一)
    文本编辑器FCKeditor
    业务部门需要IT人员为其提供什么
    程序员与VBA之怪现状
    你的代码完成了吗?(之一)——可用性和易用性
  • 原文地址:https://www.cnblogs.com/pdun/p/11079146.html
Copyright © 2020-2023  润新知