От редакции VM Guru: редакция благодарит Андрея за предоставленный материал, который, на наш взгляд, является очень актуальным для пользователей VMware ESXi. Информация об авторе статьи указана в разделе "Авторы".
В оригинальной инструкции авторы настраивают APC для работы по протоколу PowerChute. После того я как произвел все действия из оригинальной инструкции и дошел до проверки связи между apcupsd и APC посредством команды apcaccess, я не подтвердил коннект.
Поэтому я настроил на APC SNMP:
Открываем Web-интерфейс APC. Входим с логином и паролем "apc". Переходим на вкладку Administration, кнопка Network. Слева, переходим в меню: SNMPv1=>access. Ставим галочку напротив Enable SNMPv1 access. Жмем кнопку Apply:
Далее переходим в категорию: SNMPv1=>access control. Настраиваем Access control, как показано на рисунке ниже:
UPS APS готов к общению с apcupsd по протоколу SNMP.
2. Установка apcupsd на виртуальную машину vMA.
Теперь установим последнюю версию apcupsd c www.apcupsd.com. Нас интересует версия x86_64 el5. Посмотреть и скачать последнюю версию можно здесь: http://sourceforge.net/projects/apcupsd/files/.
Скачав дистрибутив, я залил его в /home/vi-admin/ на виртуальную машину vMA посредством WinSCP (можно также использовать бесплатный Veeam FastSCP).
Заходим в виртуальную машину vMA и выполняем следующую команду, чтобы ее установить:
Далее необходимо отредактировать еще два параметра – это BATTERYLEVEL и MINUTES.
BATTERYLEVEL - минимальный уровень зарядки батареи в процентах, после которого начинается выключение. MINUTES - минимальное количество минут, оставшихся до исчерпания батареи, после которого начинается выключение; основывается на мнении UPS.
Это те два параметра, которые определяют события, по достижению одного из которых (какое событие быстрее наступит) будет выполнена команда «doshutdown)», определенная в файле /etc/apcupsd/apccontrol.
После наступления этого события выполнится команда «doshutdown)», которая запустит скрипт выключения виртуальных машим, а затем и скрипт выключения самого физического хоста ESXi. Вычислить эти два параметра можно только опытным путем. Вы должны знать, в течение какого времени погаснут ваши виртуальные машины, и выставить это время в параметре MINUTES и BATTERYLEVEL.
Остальные параметры в файле /etc/apcupsd/apcupsd.conf оставляем без изменения. Сохраняем и выходим.
Отредактируйте следую строчку, вставив туда ESX\ESXi хосты, которые управляются vMA:
my @hosts = ("esxi.host1","esxi.host2”);
Если вы не помните точное имя ESX \ ESXi хостов, то узнать их можно командой:
sudo vifp listservers
По желанию можно изменить путь, по которому пишутся логи о завершении работы хостов. Путь по умолчанию - /tmp/upsShutdown.log.
my $log_output = "/tmp/upsShutdown.log";
Впишите с учетом регистра отображаемое имя vMA, которая занимается мониторингом UPS. Очень важно это сделать, чтобы предотвратить выключение виртуальной машины vMA раньше, чем отработает данный скрипт. Т.е. виртуальная машина vMA должна быть корректно погашена данным скриптом в самую последнюю очередь.
my $ups_vm_name = "S-VIMA";
Отредактируйте задержку в секундах, после которой гостевая операционная система будет выключена. Время корректного выключения гостевых виртуальных машин зависит от приложений, которые на них запущены. Обратите внимание, что «shutdownVM()» - функция «non-blocking», т.е. если установить задержку сильно короткой, то хост может выключиться раньше, чем гостевые виртуальные машины совершат корректную операцию «power off». Задержка по умолчанию 15 секунд.
my $sec_to_sleep = 15;
Далее редактируем «apccontrol» файл, чтобы указать действия при выполнении команды «doshutdown)»:
nano /etc/apcupsd/apccontrol
Редактируем раздел «doshutdown)» следующим образом:
На этом настройка завершается. В оригинальной статье присутствует метод тестирования, который Вы можете использовать. Я проверял работу данного скрипта непосредственно выключением рубильника питания на входе UPS APС, но у меня была возможность обеспечить простой…:)