提供模板和方案的具体示例。
设备模板示例(获取设备MAC)
创建名为get_mac的设备模板,新增脚本如下:
2. H3C脚本如下:
@login_device()
def get_mac():
# 取消分页
exec_cli('screen-length disable', strict=False)
# 查询接口信息
output = exec_cli('display interface | include Hardware|hardware')
# 提取mac信息
re_mac = re.compile(r"\s+([0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4})\s+")
result = list(set(mac.replace('-', '.').lower() for mac in re_mac.findall(output)))
result.sort()
return result
3. Cisco脚本如下:
@login_device
def get_mac():
# 取消分页
exec_cli('terminal length 0')
# 查询接口信息
output = exec_cli('show interface | include Hardware', timeout=600)
# 提取mac信息
re_mac = re.compile(r"\s+([0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4})\s+")
result = list(set(mac.lower() for mac in re_mac.findall(output)))
result.sort()
return list(result)
4. 任务执行示例
任务回显:
用户模板示例(批量获取设备MAC)
创建名为get_mac_multi用户模板,编辑脚本如下:
def get_mac_multi(targets):
# 创建异步任务,调用get_mac设备模板
tasks = {
_: exec_script_async("get_mac", _target=_) for _ in targets
}
result = []
for _ in targets:
try:
# 获取结果
result.append(tasks[_].get())
except Exception as e:
result.append(None)
# 获取出错信息并记录日志
# get_exc_code 返回异常错误码
# get_traceback 返回异常调用栈
logger.error("%s fail code: %s, msg: %s, tb: %s", _, get_exc_code(e), e.message, get_traceback())
return result
2. 执行示例
任务日志:
反馈
- 本页导读 (0)
文档反馈