Выключаем 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 комментариев к “Выключаем ESXi5 от ИБП APC”

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

  2. Роман

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

  3. A.Vakhitov

    Ваша правда, данный функционал автовключения/автовыключения не работает в 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. Как выполнить 10 пункт? Куда адрес https:// писать? Графической оболочки же нету.

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

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

  12. A.Vakhitov

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

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

  14. A.Vakhitov

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

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

  15. A.Vakhitov

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

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

  17. A.Vakhitov

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *