4.44444444444441111111111Rating 4.44 (9 Votes)
vagrant logoДля начала скажу какие среды поддерживает Vagrant и позволяет ими управлять:
  • KVM (libvirtd)
  • Docker
  • VirtualBox
  • VMWare
  • Hyper-V
  • Parallels
  • Облака - AWS, Azure
Легко управлять и хранить конфигурации в Git... Уже интересно, не так ли?

Кратко о Vagrant и Hashicorp

Vagrant - это Open Source продукт от компании, которая предлагает мощные и открытые проекты, такие как - Terraform, Vault, Consul... Если ты еще не знаешь, что это и кто это все производит, то не отставай от жизни и прямиком пиз#уй иди на офф сайт Hashicrop и начинай познавать облачный дзен при помощи программной продукции и документации к ней найденной по представленной ссылке выше :)

Для чего Vagrant?

Итак, что же такое Vagrant и что можно при его помощи сделать? Я как иногда разработчик, но больше тестировщик различных систем использую распространенные системы виртуализации или попросту гипервизоры, очень часто это - KVM и VirtualBox, реже VMWare и Hyper-V, далее все повествование пойдет про связку Vagrant + VirtualBox, которые крутятся на моей Fedora. Скажу сразу, что для Vagrant нет разницы где работать (равно как и для VB), это может быть Linux, Windows, MacOS...

Кратко, что может Vagrant

  • Хранение конфигураций в Git
  • Подтягивание / создание своих виртуальных образов
  • Управление виртуальными машинами, как по отдельности, так и группами
  • Управление сетевыми конфигурациями гостевых машин (NAT, Port forwarding, etc)
  • Автоматизация установки софта и настроек гостевых машин
  • Интеграция скриптов (в моем случае это bash скрипты)
  • Синхронизация шарных папок хост > гость и обратно
  • Поддержка множества различных плагинов
По сути это своего рода оркестратор... Это система, которая идеально подходит для локальных сред, где производится разработка, тестирование, где нужно что-то быстро "поднять", "убить", подготовить, изменить и т.п. и самое главное - управлять всеми этим процессами, хранить и быстро адаптировать конфигурации для мульти-проектов. Собственно в качестве источников по документальной матчасти и самого ПО можно использовать офф сайты:
Все остальные ссылки будут даны далее по тексту или полагаю, в случае необходимости ты их сам(а) сможешь найти самостоятельно в нете.

Установка Vagrant и необходимого софта

В Fedora, Vagrant ставится из "коробки":
dnf install vagrant
Как установить VirtualBox я когда-то писал в статье - Установка VirtualBox в Fedora + понадобится еще VB Extension Pack, об этом я тоже писал в статье.  Как вариант, можно использовать самый простой способ - загрузить VB с офф сайта (ссылка выше), так же понадобится установка git:
dnf install git
Ну и для написания скриптов / правки конфигураций я использую Sublime, кому как удобней. 

Настройка Vagrant окружения

Создадим папку проекта в любом удобном для себя месте и перейдем в нее:
mkdir vagrant-lesson && cd vagrant-lesson
Инициируем первую ВМ, в нотации Vagrant это называется Box. Любителям Ubuntu можно использовать образ Ubuntu, любителям CentOS - использовать CentOS и т.п., на странице приложений Vagrant Boxes каких только нет образов, в крайнем случае образ можно будет создать самому, короче, для примера инициализируем Ubuntu (чуть позже, далее везде буду использовать CentOS):
vagrant init ubuntu/trusty64
В папке проекта создастся файл Vagrantfile, в него необходимо добавить используемого нами виртуального провайдера, в данном случае, это VirtualBox:
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'
 
vagrant vagrantfile
 
Стартуем машину:
vagrant up
 
vagrant up
 
Совершаем вход по ssh на новую машину используя команду:
vagrant ssh
Смотрим данные по дистру используя lsb_release -a:
 
vagrant up2
 
Из гостя пробуем открыть наш Vagrantfile:
nano /vagrant/Vagrantfile
Видим нашу строку с провайдером, добавляем в конфиг новую строку:
 
 vagrant up3
 
Сохраняем, выходим из ssh сессии при помощи команды exit, открываем Vagrantfile, убеждаемся, что новая строка в конфиг добавлена.

Пауза, выключение, просмотр статуса, удаление Vagrant Box'a

Просмотр статуса:
vagrant status
Постановка на паузу:
vagrant suspend
Старт машины:
vagrant up
Выключение:
vagrant halt
Удаление бокса:
vagrant destroy

Управление Vagrant боксами

Расскажу кратко. Смотрим какие боксы у нас добавлены:
vagrant-lesson $ vagrant box list
hashicorp/precise64 (virtualbox, 1.1.0)
ubuntu/trusty64     (virtualbox, 20180604.0.0)
Добавляем бокс с CentOS 7:
vagrant box add generic/centos7

Итог

Мне по функциональности и по гибкости Vagrant "зашел" на "ура", действия по автоматической установке софта в машины, их обновлению и автоматически-разворачиваемом LAMP сервере, работе с различными боксами, хранение конфигов, скриптов и конфигураций в Git, а так же управлению всем этим добром при помощи Ansible или Chef планирую рассказать позже, если хочется продолжения ставь звезды или пиши в личку, я подумаю, что можно будет с этим сделать в дальнейшем :)

Доп. ссылки

 

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


Защитный код
Обновить

Сейчас 174 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз