我有大约100个交换机,需要在zenoss中重命名,并且使用IP地址和相应名称的csv文件。 有没有办法从terminal重命名设备,以便我可以敲一个快速脚本parsingcsv并根据IP地址重命名设备?
确实有。 有一个zendmd CLI接口,它提供了一种与Zenoss交互的zendmd方式。
$ /usr/local/zenoss/zenoss/bin/zendmd
我不是100%确定的,但“重命名”设备可能类似于在设备层次结构中“移动”它们。 在这里有例子的日志,让你开始。
我在find相同的解决scheme时遇到了这个问题。 我采取了卢卡切卡的build议,并问#zenoss。
答案是使用zendmd来执行一些python,交互式地或者写一个脚本来执行它。
以下脚本是由#zenoos上的“frooderino”提出的:
#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')
input文件如下所示:
oldname1,newname1 oldname2,newname2 etc.
我稍微调整它从一个variables,而不是一个文件运行,但它工作得很好。
你可以在>>>提示符下使用: execfile("script.py")在zendmd shell中运行它。 或者,直接input到shell(记住缩进)。