Назад | Перейти на главную страницу

автоматическое выключение хоста ESXi каждую ночь

Мы только что подобрали новый сервер разработки, на котором я загрузил ESXi.

Комната, в которой он находится, хорошо проветривается днем, но ночью дверь закрывается, и там становится довольно жарко. Меня попросили выключать ящик каждую ночь, так как мы все равно не будем использовать его, когда мы не в офисе.

Есть ли способ сделать это?

Я лично позволил бы серверу работать или переместить его в более работоспособную среду. Возможно, это не стоит автоматизировать.

если ты должен выключите весь хост, убедитесь, что на ваших виртуальных машинах установлены инструменты VMWare (чтобы обеспечить плавное завершение работы и включение питания) и что они настроены на остановись и начни с хозяина.

Вы можете использовать vCli и запланировать задание cron для перевода хоста в режим обслуживания и / или полного выключения хоста. Однако я бы, вероятно, просто вручную запустил команду выключения хоста из клиента с графическим интерфейсом в конце дня.

Перед автоматическим выключением вы должны посмотреть настройки питания хоста и соответствующим образом отрегулировать их. Видеть https://www.vmware.com/files/pdf/techpaper/hpm-performance-vsphere55-white-paper.pdf включение и выключение питания (а также циклическое переключение температуры, как вы говорите) уменьшит срок службы сервера

vCli уже упоминался, и, по моему мнению, это лучший способ пойти.
Однако, похоже, вы столкнулись с более серьезной проблемой, например, с перегревом серверной комнаты. С этим нужно справляться на правильном уровне. Исправьте HVAC как можно скорее, иначе вы в конечном итоге повредите свое оборудование. http://www.openxtra.co.uk/articles/skimp-server-room-ac

Вы можете включить ssh-сервер на ESXi и скопировать свой ssh-ключ на сервер, прочтите следующее о том, как это сделать: Мониторинг рейд-контроллера LSI 3ware на ESXi

Затем, чтобы выключить виртуальные машины и выключить сервер ESXi, я бы запланировал cronjob на удаленном физическом сервере:

20 9    12 22 * root    ssh 10.1.1.140 /sbin/shutdown.sh
30 9    12 22 * root    ssh 10.1.1.140 /sbin/poweroff

В этом случае выключите виртуальные машины 22 декабря в 9:20 и выключите сервер ESXi 22 декабря в 9:30.

Файл /sbin/shutdown.sh - это сценарий, который аккуратно завершает работу виртуальных машин и поставляется с экземпляром ESXi. Команда poweroff - это просто "busybox poweroff".

Вы можете включить его по локальной сети. Если у вас есть такая опция в BIOS ESXi (обычно Wake On LAN вариант). Таким образом, вы можете добавить расписание на другой машине, чтобы разбудить ESXi. И не забудьте настроить автоматический запуск виртуальных машин при запуске ESXi. Иногда в BIOS есть опция расписания включения машины.

Вы можете использовать VMware Distributed Power Management (DPM) для энергосбережения.

Если у вас запущен Python, вы можете использовать сценарий, который я написал ниже, чтобы разбудить и выключить сервер ESXi. У меня дома есть Dell R810, который я использую в качестве сервера Cisco VIRL и других устройств, но я включаю его только тогда, когда он мне нужен. Это внизу, поэтому я хотел, чтобы я мог запустить его и остановить наверху. Я включил Wake On Lan на основном сетевом адаптере на сервере (CTRL-S, когда он загружается, и включить его для основного сетевого адаптера). В vSphere настройте виртуальные машины на запуск и остановку с сервером, так как этот сценарий завершит работу ваших виртуальных машин и отключит сервер. Включите ssh для вашего сервера ESXi, введите MAC-адрес основного сетевого адаптера и измените пароль root, IP-адрес сервера и путь к python ниже.

python esxi.py -w Разбудит сервер, отправив волшебный пакет WOL. python esxi.py -s отключит ваши виртуальные машины и отключит ваш сервер.

Зависимости

paramiko wakeonlan argparse

####################Start Script
#!/home/mikepartain/scripts/esxi/bin/python

from wakeonlan import wol
import time, argparse, paramiko


parser = argparse.ArgumentParser()
parser.add_argument('-w', action='store_true', dest='wakeup')
parser.add_argument('-s', action='store_true', dest='shutdown')
args = parser.parse_args()


if args.wakeup:
    print 'Waking up ESXI Server'
    wol.send_magic_packet('f0.4d.a2.aa.aa.aa')

if args.shutdown:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('192.168.178.10', username='root', password='#PASSWORD#')
    stdin, stdout, stderr = ssh.exec_command('powerOffVms && halt')
    print 'Shutting down ESXi Server'
    ssh.close()


####################END Script

Если это сработает для вас или у вас есть способ улучшить его, сообщите мне!

Майк Партейн