Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)
Показаны сообщения с ярлыком Proliant. Показать все сообщения
Показаны сообщения с ярлыком Proliant. Показать все сообщения

пятница, 3 апреля 2020 г.

Бесплатная временная лицензия до конца 2020 года на iLO Advanced для серверов HPE Proliant

Наша компания решила поддержать малый и средний бизнес в период разгула коронавируса. Любой желающий может скачать себе ключ на активацию функционала iLO Anvanced на серверах HPE Proliant.

Полное сравнение возможностей стандартной и расширенной версии iLO можно посмотреть в этом документе:
https://support.hpe.com/hpesc/public/docDisplay?docLocale=en_US&docId=emr_na-c04951959

Но самое важное - это функция удаленной графической консоли и функция виртуального привода DVD / носителя USB. То есть это возможность полноценного администрирования сервера удаленно, без физического доступа к нему. Полезная возможность при седении в карантине.

Корпоративные заказчик и так покупают лицензию iLO Anvanced. А компании поменьше на ней экономят. Сейчас можно бесплатно скачать ключ, который будет работать до конца года.

Итак, как получить ключ.
1. Идем на страницу сайта компании, посвященную iLO
www.hpe.com/info/iLO
Нажимает кнопку "Try iLO Advanced"

2.  Рассказываем о себе, заполняя форму и нажимаем "Go to Download"



3. В правом столбце нажимаем "Download"



4. В скачанном файле ищем ключ.

А если у вас есть свободное рабочее время в самоизоляции, то рекомендую попробовать еще пару продуктов.

1. HPE iLO Amplifier Pack
https://buy.hpe.com/us/en/software/server-management-software/server-ilo-management/ilo-management-engine/ilo-amplifier-pack/p/1009838729
ПО бесплатное. Поставляется в виде виртуальной машины. Позволяет проводить инвентаризацию серверов, обновлять микрокоды, сохранять и восстанавливать настройки iLO.
Полностью возможности раскрываются при наличии на серверах лицензии iLO Advanced.
Есть возможность оценить и сравнить iLO Amplifier Pack с лицензией iLO Advanced и без.
Документация тут
https://techlibrary.hpe.com/us/en/enterprise/servers/solutions/info-library/index.aspx?cat=iLO_AP&lang=1&sort=title

2. HPE InfoSight for Servers.
https://www.hpe.com/us/en/solutions/infosight.html
Для серверов работает в связке с iLO Amplifier Pack. Облачный сервис по диагностике и мониторингу вашего оборудования. Чтобы пользоваться, надо иметь поддержку на оборудование (гарантия - тоже поддержка). В сервисе можно также отслеживать статус заявок.
Полезен при удаленной работе, если не боитесь передать телеметрию (не пользовательские данные, конечно) на серверы компании.
Документация тут
https://techlibrary.hpe.com/us/en/enterprise/servers/solutions/info-library/index.aspx?cat=infosight&lang=1&sort=title


P.S. Более развернутая статья в корпоративном блоге на Хабре
https://habr.com/ru/company/hpe/blog/498302/
 

четверг, 9 ноября 2017 г.

PowerShell и HPE OneView. Как удалить сервер из HPE OneView

Через графический интерфейс не всегда есть возможность удалить сервер из HPE OneView. Например, если сервер сейчас недоступен - физически убран, сломан и т.д. - через "графику" он может не удаляться. Выдается ошибка:



Можно использовать команды PowerShell:
Connect-HPOVMgmt -Hostname <OV Appliance IP> -UserName <Username> -Password <Password>
Get-HPOVServer -Name "<Server Hardware Name>" | Remove-HPOVServer -Force

Напомню, что должна быть установлена библиотека командлетов для HPE OneView

пятница, 3 ноября 2017 г.

Загрузка сервера Proliant с загрузочного образа в Virtual Media с помощью PowerShell и REST


Вначале приведу листинг команд целиком:
$HPOVSession = connect-HPOVMgmt -Hostname <OneView IP> -UserName Administrator -Password <Admin password>      Get-HPOVServerProfileTemplate
$DLGen9Template = Get-HPOVServerProfileTemplate -Name "*DL360 Gen9*" | select -First 1
$DLGen9Server = Get-HPOVServer -NoProfile -InputObject $DLGen9Template
$DLGen9Server
$DLGen9ServerProfile = New-HPOVServerProfile -Name "CentOS DL Gen9 Server" -AssignmentType "Server" -Server
$DLGen9Server -Async -ServerProfileTemplate $DLGen9Template
$DLGen9SSOToken = $DLGen9Server |Get-HPOVIloSso -IloRestSession
Disable-HPRESTCertificateAuthentication
$ManagerObjectsSSO = Get-HPRESTDataRaw -Href "/rest/v1/Managers" -Session $DLGen9SSOToken
$ManagerObjectsSSO
foreach ($ManagerObjectSSO in $ManagerObjectsSSO.links.Member.href) {$ManagerObjectData = Get-HPRESTDataRaw -Href $ManagerObjectSSO -Session $DLGen9SSOToken; if ($ManagerObjectData.links.PSObject.Properties.name -Contains 'VirtualMedia') {break}}
$ManagerObjectData
$VMData = Get-HPRESTDataRaw -Href $ManagerObjectData.links.VirtualMedia.href -Session $DLGen9SSOToken
foreach ($VMLink in $VMData.links.Member.href) {$VMObject = Get-HPRESTDataRaw -Href $VMLink -Session $DLGen9SSOToken; if ($VMObject.MediaTypes -contains 'DVD'){break}}
$VMObject
$mountSetting = @{'Image' = $null}
$result = Set-HPRESTData -Href $VMLink -Setting $mountSetting -Session $DLGen9SSOToken -ErrorAction SilentlyContinue
$mountSetting = @{'Image' = 'http://<HTTP Server IP>/isoboot/ubuntu-14.04.4-server-i386.iso'}
$mountSetting
$oem = @{'Hp' = @{'BootOnNextServerReset' =$true}}
$oem
$mountSetting.Add('Oem',$oem)
$mountSetting
$result = Set-HPRESTData -Href $VMLink -Setting
$mountSetting -Session $DLGen9SSOToken
$VMObject = Get-HPRESTDataRaw -Href $VMLink -Session $DLGen9SSOToken
$VMObject
$VMObject.Oem.Hp.BootOnNextServerReset
$VMObject.Image
Start-HPOVServer -InputObject $DLGen9Server

Теперь рассмотрим его более подробно. Сразу сделаю несколько замечаний:
  1. Я использовал сервер Proliant DL360 Gen9. Но подойдет любой Proliant DL или BL, начиная с 8-го поколения.
  2. Я использую старую объектную модель  REST API. Сейчас также в серверах Proliant реализована модель Redfish API, являющаяся индустриальным стандартом. Если использовать ее, то созданный скрипт будет работать и на серверах других производителей в части работы с процессором управления, если они поддерживают Redfish API. Подробнее о стандарте и тех, кто его поддерживает можно прочитать на сайте проекта http://redfish.dmtf.org/
  3. В моем примере команды вводятся в интерактивном режиме в командной строке PowerShell. При применении этого кода на практике его, конечно же, надо преобразовать в скрипт с такими входными параметрами, как IP-адрес HPE OneView, имя и пароль администратора, название шаблона профиля, который должен быть использован для подготовки сервера к работе
  4. Я не делал автоматическую установку ОС (unattended setup). Для полной автоматизации процесса, конечно, это стоит сделать
  5. Для корректной работы приводимых команд нужно поставить 2 библиотеки PowerShell: а. Командлеты для HPE OneView:
    на официальной странице Github https://github.com/HewlettPackard/POSH-HPOneView/
    или на сайте PowerShell Library https://www.powershellgallery.com/packages/HPOneView.310/3.10.1471.1581
    б. Командлеты для работы через REST c HPE iLO https://www.powershellgallery.com/packages/HPRESTCmdlets/1.2.0.0
  6. Объектная модель REST API для iLO описана на сайтах
    https://hewlettpackard.github.io/ilo-rest-api-docs/ilo4/ (не очень удобная база знаний)
    и
    https://ilorestfulapiexplorer.ext.hpe.com/
  7. нужен подготовленный сервер HTTP (в моем случае, это MS IIS), на котором выложены установочные образы ОС. Провьте заранее браузером, что образы доступны для просмотра и загрузки.
  8. Идея создания этой демонстрации и часть кода взята (монтаж Virtual Media) со страницы Github https://github.com/HewlettPackard/oneview-osdeployment
Перейдем теперь к разбору команд:

1. Соединяемся с OneView:
$HPOVSession = connect-HPOVMgmt -Hostname <OV IP> -UserName <username> -Password <password>

2. Выводим список доступных шаблонов профилей серверов:
Get-HPOVServerProfileTemplate

3. Выбираем приглянувшийся нам шаблон. В моем случае, это шаблон для серверного ресурса DL360 Gen9. Паттерн имени"*DL360 Gen9*". Шаблон с таким именем у меня один. Но для унификации выбираю первый из возможного списка:
$DLGen9Template = Get-HPOVServerProfileTemplate -Name  | select -First 1

4. После того, как мы выбрали шаблон, ищем свободный "-NoProfile" серверный ресурс, подходящий данному шаблону
$DLGen9Server = Get-HPOVServer -NoProfile -InputObject $DLGen9Template

5. Проверяем, что ресурс нашелся, выводя списко серверных ресурсов на экран. Если переводить данный листинг в скрипт, вместо вывода списка на экран нужно будет проверять, не равен ли объект/список $null. Теоретически, подходящих ресурсов может быть несколько. В этом случае можно применить фильтр " | select -First 1":
$DLGen9Server

6. На основе шаблона профиля и свободного серверного ресурса создаем серверный профиль с именем "CentOS DL Gen9 Server". В скрипте можно использовать конвейер и команду ожидания выполнения процесса " | Wait-HPOVTaskComplete". Появится симпатичный текстовый прогрессбар:
$DLGen9ServerProfile = New-HPOVServerProfile -Name "CentOS DL Gen9 Server" -AssignmentType "Server" -Server $DLGen9Server -Async -ServerProfileTemplate $DLGen9Template

7. Создаем токен безопасности для аутентификации на iLO сервера (SSO - Single Sign-on). По опыту, токен безопасности достаточно быстро протухает. Если вдруг обращения по REST к iLO вдруг выдает ошибку, перезапросите токен. Прямой вызов команды "Get-HPOVIloSso" у меня не сработал, поэтому использовал конвейер:
$DLGen9SSOToken = $DLGen9Server |Get-HPOVIloSso -IloRestSession

8. Отключаем проверку SSL-сертификата. Скорее всего, подписанного у вас нет. Без отключения сервер будет выдавать ошибку авторизации:
Disable-HPRESTCertificateAuthentication

9. Получаем головной объект "Managers" в iLO REST:
$ManagerObjectsSSO = Get-HPRESTDataRaw -Href "/rest/v1/Managers" -Session $DLGen9SSOToken

10. Проверяем, что объект получен:
$ManagerObjectsSSO

11. Теоретически у сервера может быть несколько процессоров управления и, соответсвенно, под "Managers" может скрываться несколько объектов. Ищем тот, у которого есть дочерний объект "VirtualMedia". Здесь и далее примеры с циклом сделаны для универсальности. Процедуру поиска и настройки объектов можно упростить, если использовать прямые ссылки на объекты. Но в этом случае теряется универсальность команд:
foreach ($ManagerObjectSSO in $ManagerObjectsSSO.links.Member.href) {$ManagerObjectData = Get-HPRESTDataRaw -Href $ManagerObjectSSO -Session $DLGen9SSOToken; if ($ManagerObjectData.links.PSObject.Properties.name -Contains 'VirtualMedia') {break}}

12. Проверяем, что объект получен:
$ManagerObjectData

13. Получаем ссылку на головной объект VirtualMedia. Этот объект имеет несколько дочерних объектов:
$VMData = Get-HPRESTDataRaw -Href $ManagerObjectData.links.VirtualMedia.href -Session $DLGen9SSOToken

14. Среди дочерних объектов VirtualMedia находим тот, что соответсвует типу носителя CD/DVD Virtual Media. Обычно дочерних объектов два: Floppy-привод (рудимент) и CD/DVD:
foreach ($VMLink in $VMData.links.Member.href) {$VMObject = Get-HPRESTDataRaw -Href $VMLink -Session $DLGen9SSOToken; if ($VMObject.MediaTypes -contains 'DVD'){break}}

15. Проверяем, что объект получен:
$VMObject

16. Необязательный шаг. Отмонтирует образ VirtualMedia, если какой-то уже смонтирован. Для этого вначале готовим переменну в виде массива с именованным индексом:
$mountSetting = @{'Image' = $null}

17. Записываем новое значение в iLO. В скрипте можно проверить, чему равно свойство "Image" и вызвать следующую команду только, если свойство не равно Null. В моем примере я поступаю подругому - я просто указываю игнорировать ошибку "-ErrorAction SilentlyContinue", которая возникает, если 'Image' уже Null:
$result = Set-HPRESTData -Href $VMLink -Setting $mountSetting -Session $DLGen9SSOToken -ErrorAction SilentlyContinue

18. Аналогично пункту 16 готовим переменную для внесения изменений в настройки VirtualMedia. Объектная модель есть по ссылкам выше (пункт 6 замечаний). Нужно изменить два параметра: путь к образу и выполнение единоразовой загрузки сервера с VirtualMedia. Итак, готовим переменные:
$mountSetting = @{'Image' = ‘ http://<HTTP Server IP>/isoboot/CentOS-6.7-x86_64-bin-DVD1.iso’}
$oem = @{'Hp' = @{'BootOnNextServerReset' =$true}}
$mountSetting.Add('Oem',$oem)

19. Проверяем:
$mountSetting 

20. Записываем изменения в iLO:
$result = Set-HPRESTData -Href $VMLink -Setting $mountSetting -Session $DLGen9SSOToken

21. Перезачитываем объект VirtualMedia для проверки, что изменения внесены. Тут стоит обратить внимание на следующее. Если присвоить новое значение какому-нибудь свойству объекта VirtualMedia, например, $VMObject.Image, то эти изменения не будут автоматически записаны в iLO. Для записи изменений надо использовать команду Set-HPRESTData с соответствующими параметрами, как мы сделали в пункте 20. А после того, как изменения были записаны в iLO, они не будут автоматически обновлены в объекте PowerShell. То есть объект надо перезачитать:
$VMObject = Get-HPRESTDataRaw -Href $VMLink -Session $DLGen9SSOToken

22. Проверяем, что изменения внесены в настройки iLO:
$VMObject
$VMObject.Oem.Hp.BootOnNextServerReset
$VMObject.Image


23. запускаем сервер с использованием командлета для HPE OneView:
Start-HPOVServer -InputObject $DLGen9Server

На этом всё. Если статья понравилась, жду ваших комментариев и замечаний. Если не понравилось, пишите, что не так :). Какие еще примеры работы с PowerShell, HPE OneView и REST API вам были бы интересны?

Short listing description in English:


Here is my demo command listing based on the page mentioned above and script “Mount-VirtualMedia.ps1”. I used DL360 Gen9 in my lab to demonstrate IP script boot:

1. Connecting to OV
$HPOVSession = connect-HPOVMgmt -Hostname <OV IP> -UserName <username> -Password <password>

2. Looking for Templates
Get-HPOVServerProfileTemplate

3. Choosing the right Template
$DLGen9Template = Get-HPOVServerProfileTemplate -Name "*DL360 Gen9*" | select -First 1

4. Selecting the free server resourse corresponding to our Template
$DLGen9Server = Get-HPOVServer -NoProfile -InputObject $DLGen9Template

5. Verifying that the server was selected correctly
$DLGen9Server

6. Creating server profile. You need to wait the end of profile creation
$DLGen9ServerProfile = New-HPOVServerProfile -Name "CentOS DL Gen9 Server" -AssignmentType "Server" -Server $DLGen9Server -Async -ServerProfileTemplate $DLGen9Template

7. Getting the iLO security token for our server
$DLGen9SSOToken = $DLGen9Server |Get-HPOVIloSso -IloRestSession

8. Disabling SSL certificate verification. The next steps will not work without this action
Disable-HPRESTCertificateAuthentication

9. Getting root Manager object from iLO REST
$ManagerObjectsSSO = Get-HPRESTDataRaw -Href "/rest/v1/Managers" -Session $DLGen9SSOToken

10. Verifiyng
$ManagerObjectsSSO

11. Looking for Manager spine
foreach ($ManagerObjectSSO in $ManagerObjectsSSO.links.Member.href) {$ManagerObjectData = Get-HPRESTDataRaw -Href $ManagerObjectSSO -Session $DLGen9SSOToken; if ($ManagerObjectData.links.PSObject.Properties.name -Contains 'VirtualMedia') {break}}

12. Verifiyng
$ManagerObjectData

13. Getting Virtual Media root object
$VMData = Get-HPRESTDataRaw -Href $ManagerObjectData.links.VirtualMedia.href -Session $DLGen9SSOToken

14. Looking for CD/DVD media Virtual Media. Usually there are two leafs: Floppy and CD/DVD
foreach ($VMLink in $VMData.links.Member.href) {$VMObject = Get-HPRESTDataRaw -Href $VMLink -Session $DLGen9SSOToken; if ($VMObject.MediaTypes -contains 'DVD'){break}}

15. Verifiyng
$VMObject

16. Unmount Image. Optional step
$mountSetting = @{'Image' = $null} 
$result = Set-HPRESTData -Href $VMLink -Setting $mountSetting -Session $DLGen9SSOToken -ErrorAction SilentlyContinue

17. Preparing variable to change the ISO path and One-Time Boot setting
$mountSetting = @{'Image' = ‘ http://<HTTP Server IP>/isoboot/CentOS-6.7-x86_64-bin-DVD1.iso’}
$oem = @{'Hp' = @{'BootOnNextServerReset' =$true}}
$mountSetting.Add('Oem',$oem)


18. Verifiyng
$mountSetting

19. Write changes to iLO
$result = Set-HPRESTData -Href $VMLink -Setting $mountSetting -Session $DLGen9SSOToken

20. Re-reading VM spine for verification
$VMObject = Get-HPRESTDataRaw -Href $VMLink -Session $DLGen9SSOToken

21. Verifiyng that boot setting were changed correctly
$VMObject
$VMObject.Oem.Hp.BootOnNextServerReset
$VMObject.Image


22. Starting server via OV
Start-HPOVServer -InputObject $DLGen9Server

“Verifiyng” steps are just for visualization during demo and debugging. Of course this commands can be written as a PS script. Cycles can be replaced with direct REST links.

Idea for this demo and some code (Virtual Media Mount) has been taked from this Github page
https://github.com/HewlettPackard/oneview-osdeployment


If you like the post, or if ou have any questions or suggestions please leave comment:) If you are interested in English subtitles, please give me to know.



среда, 25 октября 2017 г.

HPE OneView и PowerShell. Перезагрузка iLO

Еще один пример работы с PowerShel, OneView, iLO и REST. Перезагрузка iLO сервера.

Откроем сессию с OneView
PS > Connect-HPOVMgmt -Hostname 192.168.1.10 -UserName Administrator -Password password

Создадим объект HPOneView.ServerHardare, используем имя в виде фильтра
PS > $server = Get-HPOVServer -Name "DL360Gen9-1"

Создаем токет авторизации Single Sigh-On:

PS > $SSOToken = $server |Get-HPOVIloSso -IloRestSession


Отключаем проверку сертификата. Иначе работать не будет:
PS > Disable-HPRESTCertificateAuthentication

Создаем массив с параметрами-действиями
PS > $ResetActionArray = @{Action = 'Reset'}

Выполняем команду для перезагрузки iLO, обращаясь по REST процессору управления сервера "/rest/v1/Managers/1". Теоретически вместо "/rest/v1/Managers/1" может быть "/rest/v1/Managers/2":



PS > Invoke-HPRESTAction -Href "/rest/v1/Managers/1" -Session $SSOToken -Data $ResetActionArray

Можно попробовать зайти на iLO и убедиться что процессор управления перезагружается.