
Работа с Vagrant/Vagrantfile в Unix/Linux
Работать с vagrant не сложно. Нужно потратить немного времени на ознакомление и потом приступить к работе. Как по мне — это отличный инструмент, легкий в понимании и использовании.
Vagrant — ПО для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации, например VirtualBox, и средств управления конфигурациями, такими как Chef, Salt и Puppet.
Наверное стоит установить vagrant для начала:
Установка Vagrant в Unix/Linux
Для начала я создам папку, в ней будут лежать все vagrant-файлы:
# mkdir -p ~/VirtualBox VMs/VAGRANT
Переходим в каталог:
$ cd ~/VirtualBox VMs/VAGRANT
Самый простой способ начать использовать vagrant — это использовать готовый образ (я буду использовать готовый образ на убунту):
$ vagrant init hashicorp/precise32
Запуск vagrant
Запускаем следующую команду чтобы vagrant скачал нужный образ:
$ vagrant up
Проверка статуса vagrant
Запускаем следующую команду чтобы vagrant скачал нужный образ:
$ vagrant status
Подключение к vagrant машине через SSH
Чтобы подключится к виртуальной машине, выполните:
$ vagrant ssh
И вы попадаете во внутрь. После чего, можно выполнять любые действия. По умолчанию, пользователь и его пароль — vagrant.
Вызвать помощь
Чтобы получить помощь, используйте:
$ vagrant -h Usage: vagrant [options] <command> [<args>] -v, --version Print the version and exit. -h, --help Print this help. Common commands: box manages boxes: installation, removal, etc. connect connect to a remotely shared Vagrant environment destroy stops and deletes all traces of the vagrant machine global-status outputs status Vagrant environments for this user halt stops the vagrant machine help shows the help for a subcommand init initializes a new Vagrant environment by creating a Vagrantfile login log in to HashiCorp's Atlas package packages a running vagrant environment into a box plugin manages plugins: install, uninstall, update, etc. port displays information about guest port mappings powershell connects to machine via powershell remoting provision provisions the vagrant machine push deploys code in this environment to a configured destination rdp connects to machine via RDP reload restarts vagrant machine, loads new Vagrantfile configuration resume resume a suspended vagrant machine share share your Vagrant environment with anyone in the world snapshot manages snapshots: saving, restoring, etc. ssh connects to machine via SSH ssh-config outputs OpenSSH valid configuration to connect to the machine status outputs status of the vagrant machine suspend suspends the machine up starts and provisions the vagrant environment version prints current and latest Vagrant version For help on any individual command run `vagrant COMMAND -h` Additional subcommands are available, but are either more advanced or not commonly used. To see all subcommands, run the command `vagrant list-commands`.
Создание Vagrant снапшота
Для начала посмотрим, есть ли готовые слепки:
$ vagrant snapshot list
У меня нет ни одного, по этому, я создаю его:
$ vagrant snapshot save machine_name
Где, machine_name — имя моего снапшота. У команды snapshot имеется следующие опции:
- delete — Удалить снапшот.
- list — Показать доступные слепки.
- pop — Восстанавливает push слепок.
- push — Создает push слепок.
- restore — Восстановить снапшот.
- save — Сохранить снапшот.
Я созданный снапшот восстановил следующим образом:
$ vagrant snapshot restore --no-provision machine_name
—no-provision — не запускает машину с самого начала ( не выполняем сборку vagrantfile).
Установка плагинов для Vagrant
Проверяем какие плагины установлены:
$ vagrant plugin list
Устанавливаем плагин:
$ vagrant plugin install vagrant-rsync
У команды plugin имеется следующие опции:
- expunge
- install — Установить плагин.
- license — Установить лицензию для плагина.
- list — Проверить какие плагины были установлены.
- repair — Заменить плагин.
- uninstall — Удалить плагин.
- update — Обновить плагин.
Я установил некоторые полезные плагины:
$ vagrant plugin list vagrant-rsync (0.2.5) vagrant-scp (0.5.7) vagrant-share (1.1.6, system) vagrant-unify (0.0.1)
Для чего эти плагины и как с ними работать, я не буду. Если интересно, в интернете найдете пояснения.
Остановка vagrant машины
После того как поработали с машиной, нужно ее остановить и для этого имеется следующая команда:
# vagrant suspend
Возобновление работы vagrant машины
Возобновить приостановленную машину можно:
# vagrant resume
Удаление vagrant машины
Чтобы удалить созданную вагрант-сервер, используйте:
# vagrant destroy
PS: Иногда она не выполняется из-за нехватки прав, по этому — используйте «-f» опцию:
# vagrant destroy -f
По VagrantFile можно ознакомится тут:
Расширенная конфигурация VagrantFile
Возможные ошибки:
Статья «Работа с Vagrant/Vagrantfile в Unix/Linux» подошла к завершению.