Я работаю над тем, чтобы тренироваться в величии, которая является Python, и один из лучших способов для меня учиться - это делать. Итак, один из многих проектов, которые я рассмотрел, - это вывести информацию о прошивке из наших сред Cisco UCS. После обнаружения того, что Cisco предоставляет Python SDK для запроса UCS; Я использовал это как отправную точку. Ниже приведены ссылки для разъяснения того, что такое UCS, и SDC UCS Python.Сценарий Cisco UCS Python SDK для запросов версий прошивки
Cisco UCS Descrition:http://www.cisco.com/c/en/us/products/servers-unified-computing/index.html
Cisco UCS Python SDK:https://communities.cisco.com/docs/DOC-37174
Script ссылки с сайта Dev Cisco:https://sreeninet.wordpress.com/2014/09/20/cisco-ucs-automation-using-python-sdk/ < - это где большая часть кода в моей Сценарий пришел от главного реквизита к Sreenivas.
Мой сценарий:http://pastebin.com/txjnHi9q
Я просто хочу, чтобы вытащить имя, модель и версию прошивки для каждого из блейд-серверов, шасси и ткани межсоединений. Таким образом, используя SDK, предоставленный Cisco, и большой фрагмент сценария, связанный выше, мой сценарий может войти в нашу UCS и запросить A и B Fabric Interconnects, менеджер UCS и получить как версию модели, так и версию прошивки.
Мой скрипт отображает результаты, подобные этим:
UCS Manager Version: 2.2(3f)
Fabric Interconnect A:
Model: N10-S6200
Software Ver: 5.2(3)N2(2.23f)
Fabric Interconnect B:
Model: N10-S6200
Software Ver: 5.2(3)N2(2.23f)
Blade Chassis:
N20-C6508
N20-C6508
Blade Servers:
N20-B6625-1
N20-B6625-1
Как было показано выше, я успешно извлекаться версии прошивки для менеджера Fabric Межкомпонентные и UCS. Я попытался использовать тот же метод для вытаскивания имени, модели и прошивки Blade Chassis и Blade Servers, но для этого новичка этому становится все труднее.
Глядя на линии 46 моего сценария, связанного выше, показывает этот код:
molist = handle.GetManagedObject(None, None, {OrgOrg.DN:"sys/mgmt/fw-system"}
«SYS/Упр/ФВ-система», где я запутаться при попытке получить версию прошивки. Я могу получить только номер модели лезвия и шасси, как показано на строках 124 и 133, как показано ниже.
molist = handle.GetManagedObject(None, EquipmentChassis.ClassId())
molist1 = handle.GetManagedObject(None, ComputeBlade.ClassId())
ПСК хранит прошивки для лопастей в «SYS/шасси-Н/слот-N/Упр/Fw-системы», где N есть число шасси и слот. Я попытался просто увеличить шасси-1 до шасси-2 -3 -4 и так далее и слот-1 до слота-2 -3 -4. Это не сработало, потому что количество шасси и количество лезвий в каждом шасси не всегда одинаковы. Например, каждое шасси может содержать до 8 серверных лезвий (слот), но не все шасси имеют все 8 установленных. У некоторых есть 2 лезвия, у которых есть 6 и т. Д. После того, как я прошел мимо первого шасси и попытался увеличить его до шасси-2, скрипт просто приостановился бы бесконечно. Это может быть неважно, но я также должен учитывать, что шасси и слоты могут указывать в трехзначных цифрах.
Любые идеи о том, как это сделать в Python?
Приносим извинения, если я пропустил какую-либо соответствующую информацию. Я с удовольствием отвечу на любые вопросы. : D