Выключаем 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* — списки серверов.

Запись опубликована в рубрике 5.0, VMware, vSphere с метками . Добавьте в закладки постоянную ссылку.

49 комментариев: Выключаем ESXi5 от ИБП APC

  1. navion говорит:

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

  2. Роман говорит:

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

  3. Mister Nobody говорит:

    Роман, а вы по какой ссылке их ищите?
    Архив лежит в конце статьи по этому адресу http://blog.rebelit.net/?p=295

  4. Vajdra говорит:

    При работе в HighAvailability Cluster управление секцией Virtual Machine Startup and Shutdown недоступно. И пока я не нашел следующую информацию (http://www.schneider-electric.us/support/index?page=content&id=FA159783&country=ITB&lang=EN&locale=en_US) выключение хостов не происходило.

  5. A.Vakhitov говорит:

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

  6. Egal говорит:

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

  7. Андрей Вахитов говорит:

    А «Lost Communication» отрабатывает?
    Я тестировал работу скрипта с помощью этого события.

  8. Egal говорит:

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

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

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

  9. Андрей Вахитов говорит:

    А пункт №8 по разрешениям выполняли?
    По идее, скрипт как раз и должен пнуть выключение хоста. А уже хост сам отключит vMA.

  10. Egal говорит:

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

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

  11. Egal говорит:

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

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

  12. Egal говорит:

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

  13. Андрей Вахитов говорит:

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

  14. Vitek говорит:

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

  15. Андрей Вахитов говорит:

    10й пункт вы выполняете на другой машине с GUI и браузером.

  16. Egal говорит:

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

  17. Ilia говорит:

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

  18. Egal говорит:

    Неа, я так и не смог заставить — забил пока что.

  19. A.Vakhitov говорит:

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

  20. A.Vakhitov говорит:

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

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

  21. Egal говорит:

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

  22. A.Vakhitov говорит:

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

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

  23. A.Vakhitov говорит:

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

  24. Egal говорит:

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

  25. A.Vakhitov говорит:

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

  26. Egal говорит:

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

  27. Ilia говорит:

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

  28. Андрей Вахитов говорит:

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

  29. Ilia говорит:

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

  30. Egal говорит:

    Никак не гасит, вообще. Карту в упсе видит нормально.

  31. Ilia говорит:

    давай логи с карты, будем курить

  32. Egal говорит:

    хорошо, постараюсь сегодня вечерком подготовить!

  33. m0ps говорит:

    to Egal:
    Понимаю что уже скорее всего не актуально, но скорее всего дело в этом: http://www.schneider-electric.us/support/index?page=content&country=ITB&lang=EN&id=FA159783

  34. Artur говорит:

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

  35. Андрей Вахитов говорит:

    Где-то в EULA написано, что vMA можно использовать только совместно с платными редакциями ESXi?

  36. Egal говорит:

    Я пробовал с ключом от генератора ключей — та же фигня.

  37. Artur говорит:

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

  38. Андрей Вахитов говорит:

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

  39. Ilia говорит:

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

  40. Андрей Вахитов говорит:

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

  41. Egal говорит:

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

  42. Egal говорит:

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

  43. Artur говорит:

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

  44. Андрей Вахитов говорит:

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

  45. Egal говорит:

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

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

  46. Vitek говорит:

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

  47. Vitek говорит:

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

  48. gek говорит:

    Ссылка на скрипты битая.

  49. Андрей Вахитов говорит:

    На ссылку идеолога решения ссылка битая.
    Скрипты доступны
    https://communities.vmware.com/docs/DOC-11623
    https://communities.vmware.com/docs/DOC-9531

Добавить комментарий

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