Имеется
ESXi 4.1.0
vSphere 4.1.0
2 виртуальных сервера
Нужно, чтоб при отключении света выполнялось корректное выключение виртуальных серверов и хоста с ESXi
Потребуется
APC Smart-UPS
APC Network Managment Card
vMA 4.1.0
Установка
Предполагается, что сетевая карта уже установлена в ups, и имеет сетевой адрес 192.168.11.136, web-консоль управления доступна для работы и внесения изменений
Запускаем vSphere и устанавливаем vMA через File -> Deploy OVF Template. При инсталяции назначаем адрес vMA 192.168.11.130 и заходим туда ssh’ем. Так как vMA 4.1.0 на базе CentOS, то для дальнейшей установки софта удобнее указать репозитории
sudo vi /etc/yum.repos.d/centos-base.repo
и вставляем туда
[base] name=CentOS-5 - Base baseurl=http://mirror.centos.org/centos/5/os/x86_64/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [update] name=CentOS-5 - Updates baseurl=http://mirror.centos.org/centos/5/updates/x86_64/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [EPEL] name=CentOS-5 - EPEL baseurl=http://mirror.yandex.ru/epel//5/x86_64/ gpgcheck=1 gpgkey=http://mirror.yandex.ru/epel/RPM-GPG-KEY-EPEL
далее ставим apcupsd
sudo yum install apcupsd
в /etc/apcupsd/apcupsd.conf пишем
UPSCABLE ether UPSTYPE snmp DEVICE 192.168.11.136:161:APC:public
CommunityName указан public, тоже самое должно быть указано в настройках snmp v1 сетевой карты ups’а. Всё остальное может быть по умолчанию. Проверить доступность можно командой
snmpwalk -v 1 -c public 192.168.11.136 system
ответ должен быть приблизительно следующий
SNMPv2-MIB::sysDescr.0 = STRING: APC Web/SNMP Management Card (MB:v4.0.1 PF:v5.1.6 PN:apc_hw05_aos_516.bin AF1:v5.1.6 AN1:apc_hw05_sumx_516.bin MN:AP9630 HR:05 SN: ZA1204020850 MD:01/21/2012) (Embedded PowerNet SNMP Agent SW v2.2 compatible)
если так, то всё в порядке и доступ есть. И запускаем apcupsd
sudo /etc/init.d/apcupsd start
Дополнительно apcaccess должен показать инфо о ups’е
Скрипт выполняющий выключение гостевых систем (виртуальные сервера + сам vMA) и хост машины (тоесть той, где установлена ESXi) берём здесь или у меня и кидаем его в /home/vi-admin. Даём права на выполнение
chmod 755 shutdownHostViaSOAPAPICall.pl
и слегка его подредактируем, заполнив username and password в переменных $host_username и $host_password. Я указывал root esxi’я. В файле esxi-list указаваем адреса наших esxi хостов, по одному на строчку. В vSphere, в разделе Startup/Shutdown вносим в Automatic Startup все гостевые системы которые необходимо выключать, в том числе и vMA
Работа скрипта описана на сайте, в двух словах это так:
- авторизируемся на ESXi и получаем куку
- команда shutdown берёт куку и инициирует выключение всех ESXi хостов
- если виртуальные машины находятся в Startup/Shutdown-Automatic Startup, то они будут выключены, после чего выключается сам ESXi
Контрольная проверка
./shutdownHostViaSOAPAPICall.pl esxi-list
Всё должно корректно выключиться. Если выключение прошло хорошо, открываем apccontrol, ищем doshutdown) и после echo ставим вышеуказанную команду с полными путями
;;
doshutdown)
echo «UPS ${2} initiated Shutdown Sequence» | ${WALL}
/home/vi-admin/shutdownHostViaSOAPAPICall.pl /home/vi-admin/esxi-list >> /home/vi-admin/esxi-shutdown.log
${SHUTDOWN} -h now «apcupsd UPS ${2} initiated shutdown»
;;
Предварительно создадим файл логов
touch /home/vi-admin/esxi-shutdown.log
Вот собственно и всё

- Системный администратор с 2000 года
- Участник Freelancehunt, Хабр Q&A, cyberforum
- Кейсы