Сегодня речь пойдет о автоматическом выключении гипервизора ESXi при пропадании питания на ИБП.
Для работы данной связки нам необходим ИБП с сетевой картой. В данном конкретном случае это ИБП фирмы APC и для этих целей у APC есть продукт, который называется APC PowerChute Network Shutdown.
Со стороны ESXi в данной схеме будет участвовать виртуальная машина vSphere Management Assistant, или просто vMA.
Итак, первое, что нам нужно это установить vMA на ESXi.
1) Скачиваем и распаковываем vMA
2) Заходим в vSphere Client, жмем File -> Deploy OVF Template и выбираем скачанный .OVF файл
Принимаем лицензионное соглашение, и устанавливаем виртуальную машину.
3) Запускаем машину.
После запуска, первое что нам откроется это меню настройки сетевого интерфейса
Проходимся по всем настройкам и настраиваем интерфейсы, после того как закончили, жмем 1 (Exit this program)
4) Следующий шаг - смена стандартного пароля от пользователя vi-admin
Вводим в Old Password пароль vmware и 2 раза вводим придуманный вами пароль.
Здесь со стороны vmware есть довольно жесткие требования к сложности пароля.
Дело в том, что vMA будет "хранить" пароли доступа к гипервизору ESXi или к виртуальным машинам (зависит от настроек).
Соответственно, в ваших же интересах, чтобы пароль на vMA не был "простым".
5) После завершения установки можно зайти в консоль управления vMA по адресу https://vMA_IP:5480/ с введенными ранее логином и паролем.
Здесь можно изменить сетевые настройки, настройки часового пояса и автообновления.
Следующий этап - это настройка vMA
1) Настройки прокси:
Если у вас используется прокси сервер, то нужно отредактировать файл /etc/sysconfig/proxy следующим образом:
PROXY_ENABLED="yes" HTTP_PROXY="http://proxy_login:proxy_password@proxy_IP:proxy_port" HTTPS_PROXY="http://proxy_login:proxy_password@proxy_IP:proxy_port" FTP_PROXY="http://proxy_login:proxy_password@proxy_IP:proxy_port" GOPHER_PROXY="http://proxy_login:proxy_password@proxy_IP:proxy_port"Подставив свои значения proxy_login, proxy_password и proxy_IP:proxy_port
2) Установка mc
sudo zypper install mc3) Установка nano
sudo zypper install nano4) Если вы установили данные программы, то следует перезагрузить vMA
sudo reboot
Настройка APC PowerChute Network Shutdown
1) Качаем APC PowerChute Network Shutdown for VMware ESXi
На момент написания статьи это была версия PowerChute Network Shutdown v4.0 for VMware ESXi
2) Закачиваем PowerChute «парашют» на сервер и распаковываем:
sudo wget ftp://'restrict:Kop$74!@ftp.apc.com/restricted/software/pcns/400/esxi/pcns400ESXi.tar.gz' sudo tar -xvf pcns*.tar.gz3) Установим «парашют»:
cd ESXi sudo ./install_en.shДальше нужно будет ответить на несколько вопросов:
Please enter the installation directory or press enter to install to the default directory (/opt/APC/PowerChute): ENTER Are you sure you want to install PCNS to /opt/APC/PowerChute [Yes|No]? Yes Please enter java directory if you want to use your system java (example:/usr/local/bin/jre/jre1.8.0_31) or press enter to install the bundled Java: ENTER4) Заходим на web интерфейс PowerChute https://vMA_IP:6547
Нам предлагают выполнить несколько настроек:
1) выбираем IPv4 или IPv6 (в зависимости от версии используемого у вас протокола) 2) Standalone VMware Host. 3) Host Protocol - https 4) Host Address - ip адрес гипервизора ESXi 5) Здесь нужно задать логин и пароль администратора гипервизора ESXi. Это нужно для того, чтобы программа установки прописала необходимые параметры в самом гипервизоре: Host Username - root Host Password - root_password 6) Выбираем сколько UPC используется для питания сервера ESXi (в моем случае 1) Please select your UPS configuration - Single (Если у ваш сервер запитан от 1 UPS) 7) На вкладке PowerChute Setup: UPS Details Вводим IP Address ИБП 8) Do not turn off the UPS - если не хотите, чтобы PowerChute выключал сам ИБП после того как отработает сценарийПосле чего можно подключаться на web-интерфейс PowerChute https://vMA_IP:6547
Теперь нам нужен скрипт отключения ESXi гипервизора
1) Будем пользоваться shutdownHostViaSOAPAPICall.pl, скачать можно от сюда
Переходим в режим root пользователя:
sudo suПереходим в домашнюю директорию, качаем скрипт и переименовываем его для удобства:
cd /home/vi-admin wget https://communities.vmware.com/servlet/JiveServlet/download/11623-3-32693/shutdownHostViaSOAPAPICall.pl mv shutdownHostViaSOAPAPICall.pl shutdown.plТеперь нам нужно изменить логин и пароль доступа к гипервизору ESXi в файле shutdown.pl:
my $host_username = 'root'; my $host_password = 'root_ESXi_pswrd';2) Дополнительно нам нужен файл, где будет написан ip нашего гипервизора, и файл лога - куда мы будем записывать события, связанные с запуском данного скрипта. Создаем фай лога:
touch /var/log/apc_esxi_shutdown.logСоздаем файл с ip гипервизора:
touch /home/vi-admin/hostsДобавляем ip нашего гипервизора в файл /home/vi-admin/hosts
echo "IP_ESXi" >> /home/vi-admin/hostsЗаменив IP_ESXi на ip вашего ESXi
3) Теперь нам нужно поправить скачанный ранее shutdown.pl, т.к. в оригинале он отказывается работать и выводит ошибку:
<html> <head><title>An Error Occurred</title></head> <body> <h1>An Error Occurred</h1> <p>500 Can't connect to IP_ESXi:443 (certificate verify failed)</p> </body> </html> Failed to issue shutdown command to IP_ESXiДля того чтобы этого не было, добавим 1 строчку в shutdown.pl
sudo vi /home/vi-admin/shutdown.plперед строкой
use strict;нужно добавить строку
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;и сохранить файл (esc -> :wq). Таким образом начало файла должно выглядеть вот так: 4) Ну и последнее, что нам нужно, это дополнительный файл, который будет запускать PowerChute при пропадании питания на UPS.
sudo vi /home/vi-admin/shutdown_esxi.plсо следующим содержанием:
#!/bin/sh echo Shuting down all virtual mashines and ESXi Server /home/vi-admin/shutdown.pl /home/vi-admin/hosts >> /var/log/apc_esxi_shutdown.log5) Не забываем про права запуска и владельца файла:
sudo chmod 755 /home/vi-admin/shutdown_esxi.pl /home/vi-admin/shutdown.pl /home/vi-admin/hosts sudo chmod +x /home/vi-admin/shutdown_esxi.pl /home/vi-admin/shutdown.pl sudo chown vi-admin:root /home/vi-admin/shutdown_esxi.pl /home/vi-admin/shutdown.pl /home/vi-admin/hosts /var/log/apc_esxi_shutdown.log
Так, теперь заходим на web интерфейс PowerChute https://vMA_IP:6547 и подключаем скрипт:
Configure Events - UPS On Battery - Command file Ставим галку напротив Enable Command File
Выставляем Delay 20 seconds (если в течении этого времени питание вернется - скрипт отработан не будет)
Full path to command file - путь до нашего скрипта: /home/vi-admin/shutdown_esxi.pl
Применяем настройки
Ну и последнее, что нам нужно это в настройках гипервизора выставить очередность запуска и выключения виртуальных машин: В Данном порядке они будут включаться, в обратном выключаться.
В поле Shutdown action лучше выбрать Guest shutdown, что аналогично "Пуск - Завершение работы" у windows, в отличии от Power Off, который аналогичен нажатию кнопки выключения питания на системном блоке:
Вот собственно и все, теперь если питание пропадет на 20 секунд, гипервизор получит сигнал выключения и произойдет поочередное выключение машин, а после и самого гипервизора.
Большое спасибо за разъяснение всех пунктов настройки!! +100
ОтветитьУдалитьСкрипты pl не доступны для скачивания, поделитесь рабочей ссылкой на файлы. Спасибо
ОтветитьУдалить