Мы только что подобрали новый сервер разработки, на котором я загрузил 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
Если это сработает для вас или у вас есть способ улучшить его, сообщите мне!
Майк Партейн