Zenoss-从终端重命名设备

Zenoss-从终端重命名设备

我有大约 100 个交换机需要在 zenoss 中重命名,还有一个包含 IP 地址和相应名称的 csv 文件。有没有办法从终端重命名设备,以便我可以编写一个快速脚本来解析 csv 并根据 IP 地址重命名设备?

答案1

确实有。有一个zendmdCLI 接口,它提供了一种与 Zenoss 交互的 Python 方式。

$ /usr/local/zenoss/zenoss/bin/zendmd

我不太确定,但“重命名”设备可能类似于在设备层次结构中“移动”它们。有很多示例日志这里帮助您入门。

答案2

我在寻找相同解决方案时遇到了这个问题。我采纳了 lukecyca 的建议并在 #zenoss 上提问。

答案是使用 zendmd 执行一些 python,可以交互方式,也可以编写脚本来执行。

以下脚本是由“frooderino”在#zenoos 上建议的:

#file.csv is just a txt file with oldname,newname on each line
f = open('file.csv').read().split('\n')
print('starting rename')
for i in f:
  sync()
  o = i.split(',')
  d = dmd.Devices.findDevice(o[0])
  print('Current Name: %s' % d.id)
  d.renameDevice(o[1])
  commit()
  print('New Name: %s' % d.id)
print('done renames')

输入文件如下所示:

oldname1,newname1
oldname2,newname2
etc.

我稍微调整了一下它,让它从变量而不是文件运行,但效果很好。

您可以在 zendmd shell 中运行它,方法是:execfile("script.py")>>>提示符下。或者,直接在 shell 中输入它(记得缩进)。

相关内容