# Команды Vagrant

В самом начале были описаны базовые команды Vagrant. В данном же разделе будут рассмотрены другие команды, которые необходимы для выполнения в последующих лабораторных работах.

## Приостановка машины

Возможно нет необходимости уничтожать машину. В Vagrant есть возможность приостановить её с помощью следующей команды:&#x20;

```bash
$ vagrant suspend
```

После выполнения машина сохранит своё состояние на диск, а при последующем выполнении команды `vagrant up` её состояние возобновиться с того момента, после которого она была приостановлена.&#x20;

Данный способ позволяет быстро вернуться в работе, но требует дискового пространства для сохранения состояния ОЗУ виртуальной машины.&#x20;

## Остановка машины

Остановка виртуальной машины корректно  полностью завершит работу гостевой операционной системы и выключит гостевую машину.  Осуществить это можно с помощью команды:&#x20;

```
$ vagrant halt
```

Виртуальную машину можно будет запустить вновь, но запуск займет больше времени чем если бы она была приостановлена.&#x20;

## Снимки виртуальной машины

Vagrant также поддерживает снимки виртуальной машины, которые фиксируют состояние машины в момент их создания. Их очень удобно использовать в случае если необходимо откатить состояние машины или восстановить файлы.&#x20;

Чтобы создать снимок и сохранить состояние машины необходимо выполнить следующую команду:&#x20;

```
$ vagrant snapshot save [vm-name] NAME
```

Где, \[vm-name] - имя виртуальной машины, а NAME - имя создаваемого снимка.

Список созданных снимков можно получить с помощью следующей команды:&#x20;

```
$ vagrant snapshot list
```

Команда для восстановления снимка схожа с командой создания за исключением одного параметра:&#x20;

```
$ vagrant snapshot restore [vm-name] NAME
```

Чтобы удалить снимок виртуальной машины достаточно выполнить следующую команду:&#x20;

```
$ vagrant snapshot delete NAME
```

Вместо параметра `NAME` необходимо указать имя снимка.

## Создание собственного образа&#x20;

В самом начале было упомянуто о возможности создания собственного образа на основе базового. Процесс достаточно простой и требует лишь выполнения нескольких команд.&#x20;

После того как настройка виртуальной машины будет закончена. Необходимо выполнить следующую команду:&#x20;

```
$ vagrant package
```

После её выполнения настроенная машина будет остановлена и Vagrant создаст в текущей директории файл с именем "package.box", содержащий образ настроенной машины. Далее необходимо данный образ добавить в локальный репозиторий.&#x20;

```
$ vagrant box add --name my-box package.box
```

Параметр `my-box`  задает имя виртуальной машины. Имя необходимо чтобы инициализировать именно данный образ машины с помощью команды  `vagrant init`.

Также можно загрузить созданный образ машины в облачный репозиторий [Vagrant Cloud](https://app.vagrantup.com/)
