Настройка автозапуска виртуальных машин VMware при помощи PowerCLI.
Возникла необходимость настроить автозапуск виртуальных машин VMware на хостах Esxi, чтобы при включении хоста виртуальные машины запускались автоматически. При небольшом количестве хостов и виртуальных машин сделать это можно и в ручном режиме(в конфигурации хоста на вкладке Virtual Machine Startup and Shutdown), но, когда хостов и ВМ много, дело это довольно муторное. Поэтому будем делать с помощью PowerCLI. Я постараюсь описать всё по шагам для большей понятности. Потом эти команды можно выполнить последовательно или добавить в скрипт.
Условия задачи.
Итак, имеется сервер VCenter 6.5, несколько хостов Esxi версии 5.5 и 6.5 и PowerCLI версии 12.6. Также имеется несколько хостов в кластере, на которых данную процедуру производить не нужно. Описывать подключение к VCenter я не буду, будем считать, что мы уже подключены.
Выбор хостов для настройки.
Поскольку нам нужно сделать настройки для виртуальных машин на хостах, которые не являются членами кластера, нужно эти хосты выбрать. Критерии выбора хостов могут быть разные, мне нужны некластерные хосты, я буду фильтровать их с помощью командлета Get-VMHost по свойству Parent(у хостов в кластере это свойство будет именем кластера). Мы будем выбирать хосты, где свойство Parent будет равно host.
Вот так будет выглядеть команда для выбора нужных нам хостов:
1 |
Get-VMHost | Where-Object -Property Parent -Like host |
Если нужно выбрать хосты по другим критериям, посмотреть доступные свойства можно при помощи команды:
1 |
Get-VMHost | Get-Member -MemberType *Property* |
Настройка VMHostStartPolicy.
Давайте настроим политику автозапуска виртуальных машин на хосте esxi(Если она не включена, при настройке автозапуска машин мы получим ошибку).
Для одиночного хоста это будет выглядеть так:
1 |
Get-VMHost -Name <Host> | Get-VMHostStartPolicy | Set-VMHostStartPolicy -Enabled:$true |
Для всех выбранных нами хостов:
1 |
Get-VMHost | Where-Object -Property Parent -Like host | Get-VMHostStartPolicy | Set-VMHostStartPolicy -Enabled:$true |
Настройка VMStartPolicy.
Ну и теперь настройка политики запуска непосредственно виртуальных машин. У командлета Set-VMStartPolicy есть довольно много параметров. Нам же нужно просто настроить автозапуск включенных ВМ при старте хоста.
1 |
Get-VMHost | Where-Object -Property Parent -Like host | Get-VM | where -Property PowerState -eq PoweredOn | Get-VMStartPolicy | Set-VMStartPolicy -StartAction PowerON |
Все описанные в статье команды имеют дополнительные параметры и позволяют получать и изменять настройки, исходя из стоящих задач.