Использование vagrant

Использование vagrant.

Содержание

1 Общая информация

1.1 Лицензия

1.2 Ответвления

1.3 Основные понятия Vagrant

  • провайдер (provider) — система виртуализации, с которой работает Vagrant (например, VirtualBox, VMWare и т.п.);
  • box-файл (или Vagrant Box) — сохранённый образ виртуальной машины с развёрнутой в ней операционной системой; по сути, box-файл используется как основа для клонирования виртуальных машин с теми или иными настройками;
  • Vagrantfile — конфигурационный файл, написанный на языке Ruby, в котором указаны настройки запуска виртуальной машины.

1.4 Основные команды Vagrant

  • С Vagrant можно работать, используя следующие основные команды:
    • vagrant help — вызов справки по командам Vagrant;
    • vagrant box list — список подключённых к Vagrant box-файлов;
    • vagrant box add — подключение box-файла к Vagrant;
    • vagrant destroy — отключение box-файла от Vagrant и удаление его из виртуального окружения;
    • vagrant init — создание конфигурационного файла Vagrantfile для его последующего изменения;
    • vagrant up — запуск виртуальной машины с использованием инструкций по запуску из конфигурационного файла Vagrantfile;
    • vagrant reload — перезагрузка виртуальной машины;
    • vagrant halt — остановка и выключение виртуальной машины;
    • vagrant provision — настройка внутреннего окружения имеющейся виртуальной машины (например, добавление новых инструкций (скриптов) в ранее созданную виртуальную машину);
    • vagrant ssh — подключение к виртуальной машине через ssh.

1.5 Пример конфигурации Vagrantfile

  • Пример содержимого файла Vagrantfile для понимания принципов его синтаксиса.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
  config.vm.box = "BOX_NAME"
  config.vm.hostname = "HOST_NAME"
  config.vm.network "private_network", ip: "192.168.1.1"
  config.vm.define "VM_NAME"
  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = "1024"
  end
end
  • Первые две строки указывают на режим работы с Vagrantfile и использование языка Ruby.
  • Затем идёт цикл do, заменяющий конструкцию Vagrant.configure далее по тексту на config.
  • Строка config.vm.box = "BOX_NAME" задаёт название образа (box-файла) виртуальной машины (обычно выбирается из официального репозитория).
  • Строка config.vm.hostname = "HOST_NAME" задаёт имя виртуальной машины.
  • Конструкция config.vm.network задаёт тип сетевого соединения и может иметь следующие назначения:
    • config.vm.network "private_network", ip: "xxx.xxx.xxx.xxx" — адрес из внутренней сети;
    • config.vm.network "public_network", ip: "xxx.xxx.xxx.xxx" — публичный адрес, по которому виртуальная машина будет доступна;
    • config.vm.network "private_network", type: "dhcp" — адрес, назначаемый по протоколу DHCP.
  • Строка config.vm.define "VM_NAME" задаёт название виртуальной машины, по которому можно обращаться к ней из Vagrant и VirtualBox.
  • В конце идёт конструкция, определяющая параметры провайдера, а именно запуск виртуальной машины без графического интерфейса и с выделением 1 ГБ памяти.

2 Установка

2.1 Linux

  • Gentoo:
    emerge app-emulation/vagrant
    

2.2 Windows

3 Принципы работы

4 Подготовка образа

4.1 Общая информация

4.2 Описание установки

  • Ранее использовался язык описания JSON.
  • После Packer-1.5 используется формат HCL2.

5 Установка дополнений

  • Список дополнений: https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins
  • Установка дополнения:
    vagrant plugin install <plugin-name>
    
  • Дополнение скачивается с сайта .
  • Поскольку доступ из России блокируется, следует явно указать зеркало для загрузки дополнений:
    vagrant plugin install --plugin-clean-sources --plugin-source https://rubygems.org <plugin-name>
    

6 Разные системы виртуализации

7 Конкретные примеры


Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие