zoukankan      html  css  js  c++  java
  • 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'])
  • 相关阅读:
    android开发我的新浪微博客户端-用户授权页面UI篇(3.1)
    android开发我的新浪微博客户端-OAuth篇(2.1)
    android开发我的新浪微博客户端-载入页面sqlite篇(1.2)
    android开发我的新浪微博客户端-载入页面UI篇(1.1)
    android 强制设置横屏 判断是横屏还是竖屏
    android 各种进度条(ProgressBar)
    android:百度地图-给地图添加标注物
    android应用与服务的通信之学生查询系统案例源码
    android手机多线程断点续传下载器案例源码
    android外拨电话拦截器,完整源码
  • 原文地址:https://www.cnblogs.com/pdun/p/11079146.html
Copyright © 2011-2022 走看看