В помощь разработчику: Vagrant — менеджер виртуальных машин VirtualBox

Давно установил VirtualBox, чтобы на домашней машине под Windows играться с Linux CentOS и исследовать различные настройки, конфигурации и программные пакеты. Но заметил, что много времени уходит на создание виртуалок и установку с нуля очередного образа CentOS, пусть даже и минимального. Захотелось больше гибкости и скорости в создании вируталок и их подготовке к работе.

И вот наткнулся на Vagrant и поигрался с ним за несколько дней выходных, обращаясь за руководством к имеющимся книжкам по теме, форумам и документации.

Я впечатлен

Vagrant — это удобная утилита. Для ее работы нужна уже установленная система виртуализации, скажем, бесплатный Oracle VirtualBox. Все операции, что делает Vagrant, можно сделать и в VirtualBox, но это надо делать вручную, что очень неудобно. А Vagrant автоматизирует создание, конфигурирование, запуск и остановку виртуальных машин.

Больше нет препятствий, беспокойств и вопросов «а где мне взять отдельную машину под Linux», «а как мне потом установить туда еще кучу софта, где это все перемешается в кашу»? И «что мне делать, если все это мне надо будет потом заново начисто установить и настроить с нуля? Что делать, когда все это начнет конфликтовать: то не та версия ядра, то не те сторонние библиотеки, то порты заняты, то не та версия Java, Pyhton или PHP?» При наличии VirtualBox я не испытывал подобных препятствий, но с Vagrant жизнь с виртуалками стала проще и «насыщеннее«, что ли.

Надо поиграться в WordPress? Пожалуйста, устанавливаю LAMP-комплект. Надо поиграться с Nginx вместо Apache? С Node.js? Запросто! Надо пощупать GraalVM, не вступая в конфликт уже установленной Java? Изучить Ruby on Rails? Пожалуйста, запускаем свежую виртуалку, ставим все, что нужно, и не ставим ничего лишнего. Возникло желание поиграться в FreeBDS? Легко. OpenBSD? DragonFly BSD? Извольте, вам какую версию? Вместо CentOS желаете посмотреть, как там все устроено в Ubuntu? Пожалуйста. Есть даже вариант поставить минимальный Solaris и MacOS.

Любой стек технологий можно изолировать в отдельной новой чистой вируталке. Все эти виртуальные машины можно в любой момент остановить или вообще снести и восстановить позже в том же виде автоматически, когда они снова понадобятся. На Windows-машине не остается никакого мусора, на конкретной виртуальной машине присутствует только то, что нужно для проекта.

Зачем это нужно

Для расширения кругозора, изучения новых технологий. Чтобы быть хорошим специалистом в узкой области, но и знать, что происходит в смежных.

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

Для разработки

Это значительно облегчает жизнь разработчика. Есть несколько проектов со своей базой данных, на одной MySQL, а на другой что-то из NoSQL? И разными http-серверами? Создайте две разные виртуальные машины. Они даже работать могут одновременно, так что вы можете переключаться между проектами по мере надобности.

Многомашинный вариант

Хотите поиграться в многомашинный RHEL High Avalability кластер или Apache Tomcat web-кластер, имея в распоряжении только один домашний компьютер? Запустите с помощью Vagrant несколько виртуалок сразу и установите между ними приватную сеть со своими IP-адресами. И они прекрасно будут друг с другом общаться, даже не зная, что работают на одной машине.

Для обучения в классах

Нужно развернуть двадцать одинаковых чистых Linux, скажем, для учебного класса? С помощью Vagrant все будет готово за 5 минут. Студенты за занятие изменяли, запускали и устанавливали что-то? За перерыв между лекциями все двадцать машин с чистыми Linux можно подготовить для занятий следующего потока.

И все это в автоматическом режиме. Главное, чтобы был уже готовый бокс. А если нет готового, можно создать готовый минимальный бокс самому и потом с помощью Vagrant-а конфигурировать конкретную виртуальную машину его до нужного варианта.

Выводы

Vagrant хороший удобный инструмент, как для создания виртуальной среды для проведения какого-то эксперимента, теста или для практики. Буду следить за его развитием и пользоваться им.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s