У меня около 100 переключателей, которые нужно переименовать в zenoss, и файл csv с IP-адресом и соответствующим именем. Есть ли способ переименовать устройство с терминала, чтобы я мог запустить быстрый скрипт для анализа csv и переименовать устройства на основе IP-адреса?
Действительно есть. Eсть zendmd
Интерфейс CLI, который обеспечивает питонический способ взаимодействия с Zenoss.
$ /usr/local/zenoss/zenoss/bin/zendmd
Я не уверен на 100%, но «переименование» устройств, вероятно, сродни «перемещению» их в иерархии устройств. Есть логи примеров Вот чтобы вы начали.
Я столкнулся с этим, когда искал такое же решение. Я последовал совету lukecyca и спросил о #zenoss.
Ответ состоит в том, чтобы использовать zendmd для выполнения некоторого питона в интерактивном режиме или написать сценарий для этого.
Следующий сценарий был предложен "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, используя: execfile("script.py")
на >>>
Подсказка. Как вариант, введите его прямо в оболочку (не забудьте сделать отступ).