环境: python 2.7,hp ilo4 DL380 Gen9
1、使用 python hpilo 模块的 get_embedded_health() 方法获取健康信息

import hpilo
ilo = hpilo.Ilo(“10.2.3.3”,“admin”,“admin”)  # login ilo
health_summary = ilo.get_embedded_health()['health_at_a_glance']  
print health_summary

2、python 批量检查 ilo 健康信息,服务器信息存储在 /woo/ansible_scripts/files/devops_machine 中

#!/usr/bin/python
#-*- coding:utf8 -*-
import hpilo
import time

start_time = time.time()
ilos = []
with open('/woo/ansible_scripts/files/devops_machine','r')as f:
  lines = f.readlines()
  for line in lines: 
    line_list = line.strip().split()
    if line_list == []: #过滤空行
      continue
    ilos.append(line_list)
   
for kline in ilos:
  host = kline[0]
  user = kline[1]
  password = kline[2]
  ilo = hpilo.Ilo(host,user,password)  # login ilo
  try:
    health_summary = ilo.get_embedded_health()['health_at_a_glance']  # get ilo health information
  except:
    print "The ilo %s may get a network trouble, please fix it"%host
    continue
    
  health_status_list = [] 
  for key in health_summary:
    health_status_list.append(health_summary[key]['status'])
    if health_summary[key]['status'] == 'OK':
      continue
    else:
      print "ilo %s %s status is %s"%(host,key,health_summary[key]['status'])    
    # 如果所有项都 ok,则打印 “ilo is ok”
  if health_status_list == ['OK']*len(health_summary.keys()): 
    print "ilo %s is ok"%host
  else:
    print "========= Please check ilo %s==========="%host
      
stop_time = time.time()
time_cost = stop_time - start_time
print "cost %ss time"%time_cost

/woo/ansible_scripts/files/devops_machine 内容如下,10.2.3.3 admin admin 表示 ilo ip 10.2.3.3,帐号admin,密码 admin

10.2.3.3   admin  admin
10.2.3.4   admin  admin
10.2.3.5   admin  admin
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐