Назад | Перейти на главную страницу

Zenoss - переименовать устройство с терминала

У меня около 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") на >>> Подсказка. Как вариант, введите его прямо в оболочку (не забудьте сделать отступ).