我有大约 100 个交换机需要在 zenoss 中重命名,还有一个包含 IP 地址和相应名称的 csv 文件。有没有办法从终端重命名设备,以便我可以编写一个快速脚本来解析 csv 并根据 IP 地址重命名设备?
答案1
确实有。有一个zendmd
CLI 接口,它提供了一种与 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 中输入它(记得缩进)。