Автоматизация установки Powerchute Business Edition

в 11:29, , рубрики: powershell, Серверное администрирование, метки:

Предисловие

Недавно мой руководитель поставил задачу автоматизировать установку и настройку продукта Powerchute Business Edition на большом количестве серверов, с различным интерфейсом подключения UPS, USB, COM. Ранее занимался автоматизацией установки различного ПО, но с типом конфигурационных файлов которые использует данный продукт столкнулся впервые. Дело все в том что в качестве файла конфигурации задействованы бинарные файлы java, которые может изменять утилита с GIU интерфейсом, она не подходит для решения задачи.

Powerchute Business Edition изнутри

Рассмотрим более детально продукт, его возможно получить на официальном сайте APC в разделе загрузок. После скачивания мы получаем файл pcbesetup.exe с помощью него возможно установить три компонента, агент, сервер, консоль. Агент устанавливает драйвера на UPS и отвечает за автоматическое выключение сервера в случае пропадания электро питания. Сервер подключается к агенту считывает состояние UPS, в случает проблем может отправить оповещение на почту. Консоль, GUI интерфейс для настройки сервера и агента. Компонента три но фай один, что бы их получить в отдельности воспользуемся обычным WinRAR, откроем скачанный файл, перейдем в папку bin. Видим три наших компонента, но папок четыре, об этом чуть позже.

Автоматизация установки Powerchute Business Edition

Автоматизация установки компонентов

Поскольку файлы ингаляторов сделаны в InstallShield, возможно создание файла ответов, о чем написано на сайте производителя. С начало необходимо поместить все разархивирование файлы к примеру по следующему пути C:APC, после в заданном порядке установить компоненты из командной строки:

1. C:APCagent-upslinksetup.exe -r установка агента версии 9.0.3
2. C:APCagentsetup.exe -r обновление агента до версии 9.1.1
3. C:APCserversetup.exe -r установка сервера версии 9.1.1
4. C:APCconsolesetup.exe -r установка консоли 9.1.1

После каждой установки будет создаваться файл ответов C:Windowssetup.iss, который необходимо скопировать в каталог с инсталлятором. Важно что бы при установки агента обнаружение UPS прошло автоматически, это даст в дальнейшем возможность устанавливать агент с различными интерфейсами подключения USB, COM, он будет сам обнаруживать UPS. Теперь проверим что файлы ответов работаю, удалим установленные компоненты, установим заново с ключом s.

1. C:APCagent-upslinksetup.exe -s
2. C:APCagentsetup.exe -s
3. C:APCserversetup.exe -s
4. C:APCconsolesetup.exe -s

Как видим установка прошла успешно:

Автоматизация установки Powerchute Business Edition

Компоненты установились, теперь их необходимо настроить. Настройка агента проходит в момент установки, задается логин и пароль, который сохраняется в файле C:Windowssetup.iss , его настройку мы уже выполнили ранее когда создали файл ответов. Теперь наступает самое интересно настройка сервера с бинарным java файлом. Открываем консоль и удаляем ранее настроенный UPS.

Автоматизация установки Powerchute Business Edition

после добавляем нового клиента, важно в диапазоне поиска указать подсесть 127.0.0.*, это необходимо для автоматизации, поскольку на разных серверах будут разные адреса агентов, а файл конфигурации мы не будем редактировать в ручную.

Автоматизация установки Powerchute Business Edition

Настраиваем отправку оповещений на почту, в разделе Tools > Chenge Configuration Profile, описывать каждое поле не буду и так все понятно.

Автоматизация установки Powerchute Business Edition

Все необходимое для автоматизации есть, копируем в файлы с настройками сервера, по следующему пути C:Program Files (x86)APCPowerChute Business Editionserver, файлы m11.bak, m11.cfg. в каталог C:APCserver, удаляем все все ранее установленные компоненты PowerChute, и устанавливаем их с помощью скрипта на PowerShell, листинг привожу ниже. Логика скрипта следующая, переходим в каталог где находиться файл скрипта, устанавливаем и обновляем агент, устанавливаем сервер, останавливаем службу сервера, меняем файлы конфигурации, запускаем службу сервера, устанавливаем консоль.

function InstallPowerShute{
     .APCagent-upslinksetup.exe -s | Out-Null
     .APCagentsetup.exe -s | Out-Null

     $PowerChuteServerFolder= ${env:ProgramFiles(x86)} + "APCPowerChute Business Editionserver"
     $PowerChuteServerFile1= $PowerChuteServerFolder + "m11.bak"
     $PowerChuteServerFile2= $PowerChuteServerFolder + "m11.cfg"
     .APCserversetup.exe -s | Out-Null
    Stop-Service APCPBEServer -Force | Out-Null
    remove-item -path $PowerChuteServerFile1 -force
    remove-item -path $PowerChuteServerFile2 -force
    Copy-Item ".APCserverm11.bak" -Destination $PowerChuteServerFolder
    Copy-Item ".APCserverm11.cfg" -Destination $PowerChuteServerFolder
    Start-Service APCPBEServer | Out-Null

     .APCconsolesetup.exe -s | Out-Null
}

function Get-ScriptPath{
Split-Path -Path $MyInvocation.ScriptName
}

$path = Get-ScriptPath
cd $path
InstallPowerShute

Надеюсь у вас все получится.

Cпасибо за внимание.

Автор: Didenko_G

Источник

* - обязательные к заполнению поля