Специально для Windows администратора и ИТ-профессионалов Hewlett-Packard недавно выпустила набор из 110 PowerShell командлетов, позволяющих напрямую из систем Windows удаленно настраивать и управлять интерфейсами HP ILO на серверах HP. Этот набор командлетов носит название HP Scripting Tools для Windows PowerShell и предназначен для работы с HP iLO 3 и iLO 4. Командлеты объединены в модуль HPiLOCmdlets и предназначены для:
- Поиска и сканирования интерфейсов ILO в сети
- Доступа к настройкам ILO, в том числе настройками интерфейса, пользователей ILO, управления электропитанием, логами, IML и т.д.
- Возможность одновременного управления сразу несколькими платами iLOs
Скачать HP Scripting Tools для Windows PowerShell можно тут. Выберите версию и разрядность своей ОС (поддерживаются ОС Windows 7 SP1, Microsoft Windows 8, Microsoft Windows Server 2008 R2 SP1 и Microsoft Windows Server 2012 /R2) и скачайте соответствующий пакет (на момент написания статьи на сайте была доступна HP Scripting Tools Version 1.1 — 20 Mar 2014).
В нашем примере это пакет для Windows Server 2012 R2 –Z7550-10537-x64.exe (479 KB). Распакуйте содержимое архива в произвольную папку и запустите установку модуля HP Scripting Tools для PowerShell (HPiLOCmdlets-x64.msi).
Модуль устанавливается в каталог C:\ProgramFiles\Hewlett-Packard\PowerShell\Modules, но путь к этому каталогу в системную переменную PSModulePath не вносится. Т.е. среда PowerShell по умолчанию этот модуль не видит. Исправим это недоразумение командой:
$env:PSModulePath+=";$env:ProgramFiles\Hewlett-Packard\PowerShell\Modules"
Полный список PowerShell командлетов HP (110 штук) можно вывести так:
Get-Command *HP*
С помощью этих командлетов можно получать статус и управлять множеством настроек платы ILO на серверах HP: в том числе управлять электропитанием, порядком загрузки , сигнальным светодиодом (UID), получать информацию о версии HP ILO, обновлять прошивку и т.п.
Информацию о назначении, аргументах и примерах использования конкретного командлета можно получить так:
help -Full
В первую очередь познакомимся с командлетом, позволяющим обнаружить в сети интерфейсы HP ILO. В качестве аргумента он может принимать как конкретный IP адрес, так и диапазон IP адресов:
Find-HPiLO 10.10.20.138
Find-HPiLO 10.10.20.138-141
В нашем примере при сканирования диапазона IP адресов мы обнаружили 3 интерфейса ILO v3, установленных на серверах HP Proliant DL 360 G7.
Чтобы не указывать каждый раз, сохраним в соответствующих переменных IP адрес ILO, имя и пароль пользователя, обладающего доступом к консоли ILO:
$srvILO = Find-HPiLO 10.10.20.141
$username='Admin'
$password='myILOpassw0rd'
Попробуем понять включено ли электропитание на сервере:
Get-HPiLOHostPower -Server $srvILO -Username $username -Password $password
Как мы видим, сервер включен (HOST POWER : ON).
Чтобы выключить сервер HP с помощью интерфейса ACPI выполним команду:
Set-HPiLOHostPower -Server $srvILO -Username $username -Password $password -HostPower "No"
Удалено включить сервер можно так:
Set-HPiLOHostPower -Server $srvILO -Username $username -Password $password -HostPower "Yes"
Напишем небольшой скрипт, который берет параметры из CSV файла и включает/отключает все сервера HP по списку.
В CSV файле будут содержатся ip адрес сервера, имя пользователя и пароль, нужный статус электропитания на сервере. Формат файла ILO.csv:
Server,Username,Password,HostPower
10.10.20.160,Admin, myILOpassw0rd,Yes
10.10.20.162,Admin, sdILOdsd,No
Следующий PoSh скрипт пройдется по csv файлу и переведет питание всех северов в нужное состояние:
$path = ".\ILO.csv"
$file_csv = Import-Csv $path
$p_ilo = Set-HPiLOHostPower -Server $file_csv.Server -Username $csv.Username `
-Password $file_csv.Password -HostPower $file_csv.HostPower
$p_ilo | Format-List
$p_ilo = Get-HPiLOHostPower -Server $file_csv.Server -Username $file_csv.Username `
-Password $file_csv.Password
$p_ilo | Format-List
Теперь попробуем удаленно включить на сервере индикатор UID (голубого цвета). Сначала узнаем текущий статус UID индикатора:
Get-HPiLOUIDStatus -Server $srvILO -Username $username -Password $password
Включим его:
Set-HPiLOUIDStatus -Server $srvILO -Username $username -Password $password -UIDControl "Yes"
Далее попробуем изменить порядок загрузки сервера HP (Boot Order). Получим информацию о текущих настройках приоритета загрузки:
Get-HPiLOOneTimeBootOrder -Server $srvILO -Username $username -Password $password
Изменим порядок загрузки сервера HP, указав в качестве перового загрузочного устройства CDROM:
Set-HPiLOOneTimeBootOrder -Server $srvILO -Username $username -Password $password -Device "CDROM"
Смонтируем в виртуальный CDROM нужный iso образ:
Mount-HPiLOVirtualMedia -Server $srvILO -user $srvILO -pass $password -Device CDROM -ImageURL ‘http://hpdlsrv1.winitpro.ru/dir/windows2012r2dtc.iso’
Отмонтировать iso образ можно так:
Dismount-HPiLOVirtualMedia -Server $srvILO -user $srvILO -pass $ password -Device CDROM
Мы рассмотрели только базовые примеры использования модуля HPiLOCmdlets , но и по ним видно насколько набор командлетов HP Scripting Tools для Powershell может упростить задачи системного администратора при работе с серверами HP в части автоматизации повседневных задач.