Pull to refresh

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

Reading time3 min
Views50K

Предисловие


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

Powerchute Business Edition изнутри


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



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


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

1. C:\APC\agent-upslink\setup.exe -r установка агента версии 9.0.3
2. C:\APC\agent\setup.exe -r обновление агента до версии 9.1.1
3. C:\APC\server\setup.exe -r установка сервера версии 9.1.1
4. C:\APC\console\setup.exe -r установка консоли 9.1.1

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

1. C:\APC\agent-upslink\setup.exe -s
2. C:\APC\agent\setup.exe -s
3. C:\APC\server\setup.exe -s
4. C:\APC\console\setup.exe -s

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



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



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



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



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

function InstallPowerShute{
     .\APC\agent-upslink\setup.exe -s | Out-Null
     .\APC\agent\setup.exe -s | Out-Null

     $PowerChuteServerFolder= ${env:ProgramFiles(x86)} + "\APC\PowerChute Business Edition\server"
     $PowerChuteServerFile1= $PowerChuteServerFolder + "\m11.bak"
     $PowerChuteServerFile2= $PowerChuteServerFolder + "\m11.cfg"
     .\APC\server\setup.exe -s | Out-Null
    Stop-Service APCPBEServer -Force | Out-Null
    remove-item -path $PowerChuteServerFile1 -force
    remove-item -path $PowerChuteServerFile2 -force
    Copy-Item ".\APC\server\m11.bak" -Destination $PowerChuteServerFolder
    Copy-Item ".\APC\server\m11.cfg" -Destination $PowerChuteServerFolder
    Start-Service APCPBEServer | Out-Null

     .\APC\console\setup.exe -s | Out-Null
}

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

$path = Get-ScriptPath
cd $path
InstallPowerShute


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

Cпасибо за внимание.
Tags:
Hubs:
Total votes 4: ↑3 and ↓1+2
Comments2

Articles