Выключаем ESXi5 от ИБП APC

Возникла задача по настройке автовыключения хоста ESXi5 по сигналу с UPS. Так как это не ESX, агентов в него не встроишь. Достаточно быстро я нашел ПО – APC Powerchute Network Shutdown, который умеет выключать ESXi, соответственно, я расскажу про его настройку и тестирование.

Поехали.

1) Скачиваем и разворачиваем vMA;

2) Скачиваем ESXi PCNS 3.0.1 с сайта APC. Software & Firmware ->PowerChute Network Shutdown;

3) Копируем полученный архив на vMA. Я использовал WinSCP, положил архив в /home/vi-admin;

4) Распаковываем архив и запускаем инсталлятор

tar -xzvf pcns301ESXi.tar.gz
cd ESXi
sudo ./install_en.sh

Устанавливайте Java, которая идет в комплекте с PCNS. Адрес сервера можете не указывать, введете его позже;

5) Если у вас бесплатная версия ESXi5, берете отсюда скрипты shutdown.pl и shutdown, выкладываете их на vMA и редактируете эти скрипты. Если платная, то просто добавляете ваши сервера ESXi с помощью ViFPInit. Дальнейших телодвижений с файлами shutdown не совершаете;

6) Добавляем логин/пароль хоста ESXi в shutdown.pl и копируем скрипты в каталог PCNS

sudo cp shutdown.pl /opt/APC/PowerChute/group1/bin
sudo cp shutdown /opt/APC/PowerChute/group1/bin

7) Создаем там же файл hosts, содержащий IP-адреса хостов. FQDN не подходит.

sudo vi /opt/APC/PowerChute/group1/bin/host

Файл должен выглядеть примерно так:

10.0.0.4
10.0.0.5

8) Даем на файлы права руту и делаем их выполняемыми

sudo chown root /opt/APC/PowerChute/group1/bin/shutdown
sudo chown root /opt/APC/PowerChute/group1/bin/shutdown.pl
sudo chmod 744 /opt/APC/PowerChute/group1/bin/shutdown
sudo chmod 744 /opt/APC/PowerChute/group1/bin/shutdown.pl

9) Настраиваем автозапуск виртуальных машин;

10) Подключаетесь по адресу https://vMA_IP:6547/login и настраиваете конфигурацию подключения к UPS, указываете координаты UPS и реакцию на различные события.

11) Для проверки выключения сервера можно выполнить команду

cd /opt/APC/PowerChute/group1/bin
sudo ./shutdown.pl host

Примечания:

В ESXi5 Up1 Free не работает автовключение/автовыключение ВМ. Лечится патчем VMWARE-ESXi-5.0.0-Rollup-20111216.iso.

Для корректного автовыключения ВМ необходимо наличие VMware Tools.

Для выключения хостов с разными паролями редактируете файл shutdown следующим образом:

perl ./bin/shutdown.pl ./bin/host
perl ./bin/shutdown2.pl ./bin/host2

Соответственно, в скриптах shutdown*.pl у вас учетные данные, а в файлах host* – списки серверов.

49 thoughts on “Выключаем ESXi5 от ИБП APC”

  1. Примерно тоже самое написал для Eaton IPP, единственный нюанс – при локальном подключении ИБП надо снять галку “Yield CPU on poll”, иначе связь постоянно теряется.

  2. Пожалуйста выложите сюда скрипты shutdown.pl и shutdown, или их листинги. По указанной вами ссылке я не могу их найти. Пожалуйста помогите новичку в этой теме.

  3. Ваша правда, данный функционал автовключения/автовыключения не работает в HA-кластере.
    Я даже добавлю больше, VMware невдомек, что в HA/(HA+DRS) кластере может потребоваться выключать хост вместе со всеми ВМ 🙂
    А потом включать их все одновременно.
    Ссылка к сожалению не открывается.

  4. Не понятно как заставить сам PCNS запускать скрипт.
    Работает даже штатный скрипт – вручную esxi гасится, и гасит все виртуалки.
    Но вот почему-то на событие – On Battery – скрипт не запускается.

  5. Я ставил запуск скрипта на UPS: On Battery. И это событие в логе появляется. Оно точно отрабатывает – потому что я ставил галку Shutdown System, и до этого события тоже доходит, т.к. PCNS пытается погасить vMA. Правда вместо этого он походу гасит только сам веб-сервер, vMA как работала так и продолжает работать.

    Lost Communication – это же потеря связи с карточкой?

    Я решил что путь слишком длинный, скопировал shutdown в /home/vi-admin – и даже проверил там же, работает четко, все гасит. Почему PCNS его запустить не может – не пойму 🙁

  6. Да, конечно сделал. Даже 777 дал.

    Руками если запустить – все срабатывает, именно PCNS не хочет запускать скрипт.
    Причем если только оставить событие On Battery – то все тихо, а если указать еще чтобы он сделал Shutdown и в этом событии прописать скрипт, то в логах PCNS появляется ошибка, мол не смог запустить скрипт из-за неправильного пути.

  7. Да, конечно выполнил, даже 777 дал.
    Руками все отрабатывает – идет сигнал на выключение хоста, тот гасит вм-ы, потом гасится сам.

    PCNS почемуто нежелает запускать скрипт.

  8. а не подскажете – как у Вас путь написан в парашуте? просто /opt/…/shutdown
    или sudo или еще как?

  9. К сожалению, сейчас нет возможности посмотреть, как настроен APC PCNS.
    Я написал знакомому, если он внесет ясность – я отпишусь.

  10. Как выполнить 10 пункт? Куда адрес https:// писать? Графической оболочки же нету.

  11. Я так и не смог настроить парашут на виртуалке, не срабатывают события при отключении – только вручную.

  12. ну что кто нить разобрался как прописать путь к скрипту в парашуте?
    1./opt/…/shutdown?
    2./opt/…/shutdown/*file*?

  13. Путь к скрипту в парашуте прописывать не надо. Он использует скрипт по умолчанию /opt/APC/PowerChute/group1/bin/shutdown
    Соответственно, если вы скачиваете “чужеродные” по ссылке выше shutdown и shutdown.pl, то их необходимо положить в это же место.

  14. В ручном режиме работает?

    cd /opt/APC/PowerChute/group1/bin
    sudo ./shutdown.pl host

  15. Да, если команду дать руками, то ESXi гасится как надо.
    События не возникает – просто из упс-а выдергивал провод 220.
    Парашут не ловит это событие почему-то.

  16. Хмм. А потерю сети до ИБП ловит?
    Там есть событие “management network lost” или что-то в этом духе.
    Стыдно признаться, но я сам пропадание питания не тестировал. Проверял только потерю сети до ИБП – с ней все чудесно работало.

    По идее, если PowerChute не ловит событие, надо заново подключить ИБП к PowerChute.
    И проверить, что ваш скрипт shutdown содержит команду “shutdown.pl host”

  17. Ну и host в данном случае, это файл со списком ip-адресов серверов, а не название сервера.

  18. Не понял – что такое потеря сети до ИБП? Сети – имеется ввиду 220 или Ethernet?
    У меня задача – корректно выключать ESXi при пропадании входного питания на UPS-е, скажем через 10-15 минут после собственно пропадания оного, и включиться если питание опять появится. UPS это все поддерживает, но парашут не ловит событие и все тут.
    Я ставил там какую-то галку, но тогда в логах парашута появлялась ошибка – кривая команда (та что на событие назначена). Причем пофигу что туда забить, даже просто sudo если – все равно не понимает.

  19. Я проверял потерю сети Ethernet – то есть отсутствие пинга от PowerChute до управляющего интерфейса ИБП.

  20. Так это не актуальная проблема, ну потерял Ethernet и потерял – и черт бы с ним.
    У меня просто бывает что напруга в сети скачет, а на вводе стоит реле напряжения, и оно обесточивает полностью все помещение. Бывает что просто пропадает – UPSна 1500 всего, держит минут 40 и хотелось бы выключить корректно все.

  21. Egal,
    +1 типовой узел связи запитан от УПС, при пропадании питания нужно завершить виртуалки этого сегмента (1узел=1хост)
    A.Vakhitov,
    искл. ради самообразов., что за условия потребовали отключать хосты при потере Eth-соединения с УПС?

  22. Вся инфраструктура находилась в другом городе, настройку PCNS (пункт 10) осуществлял местный специалист. Так как помещение было арендованным, то выдергивать питание из ИБП ему бы не дали. Поэтому мы решили синтезировать сбой с помощью другого события – пропадания связи с ИБП.

  23. Egal, а просто галку Shut Down System отрабатывает как PowerOff или корректно гасит?

  24. Андрей, Вы уверены, что использование vMA не требует платной версии гипервизора VMWare?

  25. Андрей, я всего-лишь спросил, работает ли этот эпплайнс на бесплатной версии ESXi на каком-либо живом сервере? Мои коллеги ранее безуспешно пытались запустить его предшественника (VIMA), который требовал наличие платной лицензии.

  26. У меня запустился с бесплатной редакцией, правда, в работе проверить мне не удалось. Я в комментариях отписывал, что проверял по отключению сети от ИБП – PCNS срабатывала. К сожалению, отключить от питания ИБП было нельзя.

  27. Все работает, забыл отписать сюда, просто ОЧЕНЬ быстро я и не заметил в первый раз, пока от стенда к монитору подошел

  28. Egal, если вбивали “небесплатные” серийники на ESXi, то рекомендуется вернуть родные файлы shutdown/shutdown.pl и провести “привязку” vMA к серверу через vifpinit.

  29. Так он с любой редакцией запускается. Проблема в том что события не ловит – по крайней мере так как хотелось бы. С какими то настройками он все таки стал ловить событие пропадания питания – но погасить машину не мог. В логах писалось что кривая команда или что-то в этом духе. Хотя из командной строки vMA, вручную, скрипт отрабатывал железно – гасились виртуалки и потом сам гипервизор.

  30. Та я по всякому пробовал – и так и сяк, и с родными скриптами и не родными, не работает и все.

  31. В том то и дело, что “небесплатных” серийников не было. Платформа была установлена с бесплатным серийником. А гасить UPS мне и не нужно. Главное, чтобы этот эпплайнс корректно гасил гостевые машины (сервера). Я пытаюсь выяснить, делает ли он это на ESXi Free License, поскольку официального документального подтверждения по этому вопросу я так и не нашел.
    Заранее признателен за любые комменты по этому вопросу.

  32. Не, UPS никто не гасит. Данная софтина гасит сам ESXi, в результате чего тот отправляет команду выключения гостевым ВМ.
    Также требуется VMware Tools в гостевых ВМ.
    Egal, а вы версию PCNS 3.0.1 брали?

  33. Artur – это у меня были не бесплатные серийники.

    Андрей – по-моему да, какую-то последнюю, с их сайта (со шнайдера).

  34. Настроил все по инструкции. Все работает, единственно пришлось поставить PCNS 2.2.4. На PCNS 3.0.1 событие на отключение по питанию не перехватывалось. Стоят бесплатные Vmware ESXi 5

  35. Все настроил по инструкции. Все работает, единственно пришлось поставить PCNS 2.2.4, так как на PCNS 3.0.1 не перехватывалось событие на отключение питания. Стоят бесплатные Vmware ESXi 5.

Leave a Reply

Your email address will not be published. Required fields are marked *