Vagrant: остановить все запущенные боксы

Автор: | 21/01/2016

vagrant-logo_7acd1165e16d4120b62515fa57fe29beНа рабочей машинке запущено несколько Vagrant машин.

Что бы остановить (или приостановить) все – можно воспользоваться vagrant global-status:

$ vagrant global-status
id       name    provider   state    directory
-------------------------------------------------------------------------------------------------------
b2080c5  default virtualbox running  /Users/username/VMs/Vagrant/nike
...
12beb0a  default virtualbox running  /Users/username/VMs/Vagrant/JBoss


Теперь выполним следующее (работает на OS X 10):

  • vagrant global-status выведет список всех машин;
  • грепаем запущенные машины;
  • вырезаем ID запущенных машин (первые 9 символов);
  • результат через пайп передаем в цикл, который выполняет vagrant halt boxID.

Например:

$ vagrant global-status | grep running | cut -c 1-9 | while read line; do echo $line; vagrant halt $line; done;
cdc2b6d
==> default: Attempting graceful shutdown of VM...
27e968a
==> default: Attempting graceful shutdown of VM...
7fd1151
==> default: Attempting graceful shutdown of VM...
12beb0a
==> default: Attempting graceful shutdown of VM...
...

Готово.

Эти и другие примеры – тут>>>.