标签:result 火墙 一个 基础 sub 运维开发 interface res gen
ITIL:Information Technology Infrastructure Library 信息技术基础架构库,主要适用于IT服务管理(ITSM)。ITIL为企业的IT服务管理实践提供了一个客观、严谨、可量化的标准和规范。
CMDB(Configuration Management Database 配置管理数据库)
存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。
70%~80%的IT相关问题与环境的变更有着直接的关系。实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化的流程去执行,能够预测到这个变更对整个系统管理产生的影响,并对这些影响进行评估和控制。而变更管理流程自动化的实现关键就是CMDB。
目前CMDB资产管理的实现有如下方式:
1.SSH类
基于CMDB中控机和SSH对远程服务器执行命令实现
1 # 基于paramiko模块, pip3 install paramiko 2 import requests 3 import paramiko 4 5 # ################## 获取今日未采集主机名 ################## 6 #result = requests.get(‘http://www.127.0.0.1:8000/assets.html‘) 7 # result = [‘c1.com‘,‘c2.com‘] 8 9 10 # ################## 通过paramiko连接远程服务器,执行命令 ################## 11 # 创建SSH对象 12 ssh = paramiko.SSHClient() 13 # 允许连接不在know_hosts文件中的主机 14 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 15 # 连接服务器 16 ssh.connect(hostname=‘192.168.179.130‘, port=22, username=‘root‘, password=‘‘) 17 18 # 执行命令 19 stdin, stdout, stderr = ssh.exec_command(‘ifconfig‘) 20 21 # 获取命令结果 22 result = stdout.read() 23 24 # 关闭连接 25 ssh.close() 26 print(result) 27 28 # data_dict = {result} 29 30 # ################## 发送数据 ################## 31 # requests.post(‘http://www.127.0.0.1:8000/assets.html‘,data=data_dict)
去api取今天未采集资产的主机列表,把主机名拿过来,远程连接服务器,执行命令,把结果拿回来,给中控机再汇报给api--负责入库。
优点是无agent,缺点是慢
2.Agent 基于shell命令实现
import subprocess import requests # pip3 install requests # ################## 采集数据 ################## result = subprocess.getoutput(‘ipconfig‘) # result正则处理获取想要数据 # 整理资产信息 data_dict ={ ‘nic‘: {}, ‘disk‘:{}, ‘mem‘:{} } ################## 发送数据 ################## requests.post(‘http://www.127.0.0.1:8000/assets.html‘,data=data_dict)
对于Agent的版本的实现思路:
3.saltstack
# 1. 安装saltstack # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub # Master: yum install salt-master Master准备: a. 配置文件,监听本机IP vim /etc/salt/master interface: 本机IP地址 b. 启动master /etc/init.d/salt-master start Slave: yum install salt-minion Slave准备: a. 配置文件,连接那个master vim /etc/salt/minion 16行 master: 远程master地址 b. 启动slave /etc/init.d/salt-minion start 2. 创建关系 查看 Master:salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: c1.com c2.com c3.com Rejected Keys: 接受 Master:salt-key -a c1.com Accepted Keys: c1.com c2.com Denied Keys: Unaccepted Keys: c3.com Rejected Keys: 3. 执行命令 master: salt ‘c1.com‘ cmd.run ‘ifconfig‘ import salt.client local = salt.client.LocalClient() result = local.cmd(‘c2.salt.com‘, ‘cmd.run‘, [‘ifconfig‘]) vim /usr/bin/salt import requests ################## 获取今日未采集主机名 ################## result = requests.get(‘http://www.127.0.0.1:8000/assets.html‘) result = [‘c1.com‘,‘c2.com‘] ################## 远程服务器执行命令 ################## import subprocess result = subprocess.getoutput("salt ‘c1.com‘ cmd.run ‘ifconfig‘") import salt.client local = salt.client.LocalClient() result = local.cmd(‘c2.salt.com‘, ‘cmd.run‘, [‘ifconfig‘]) ################## 发送数据 ################## requests.post(‘http://www.127.0.0.1:8000/assets.html‘,data=data_dict)
4.Puppet
基于Puppet的factor和report功能实现
优点是自动汇报,缺点是使用ruby语言
标签:result 火墙 一个 基础 sub 运维开发 interface res gen
原文地址:http://www.cnblogs.com/gregoryli/p/7881216.html