Vagrant. Описание и простые команды

Vagrant — ПО для создания и настройки виртуальной среды. Vagrant является надстройкой для VirtualBox, vmWare, Hyper-V и т.д.

Основные элементы Vagrant:

  • Boxes — сжатые образы виртуальных машин. Один образ можно использовать несколько раз (аналог iso- файла)
  • cli — консольные команды для управления средой
  • VagrantFile — файл с описанием конфигурации
  • Plugins — отдельные компоненты, которые упростят работу. Например можно поставить надстройку над vmWare и управлять машинами через Vagrant

Установка VirtualBox и Vagrant у меня не вызвала проблем, кроме той, что я ставил их рядом с vmWare, как получилось установить я рассказывал тут.

Попробуем развернуть простую виртуальную машину c CentOS 7. Для этого сначала проверим что vagrant работает корректно, а потом запросим VagrantFile

vagrant status
vagrant init centos/7

После инициализации centos/7 в текущий каталог загружается VagrantFile, который содержит настройки виртуальной машины. Для загрузки VagrantFile с популярными ОС надо вписать следующие команды:

  • Debian 10 Buster — vagrant init debian/buster64
  • CentOS 6 — vagrant init centos/6
  • CentOS 7 — vagrant init centos/7
  • CentOs 8 — vagrant init centos/8
  • Ubuntu 20.04 — vagrant init ubuntu/bionic64
  • Ubuntu 18.04 — vagrant init bento/Ubuntu-18.04
  • Ubuntu 16.04 — vagrant init ubuntu/xenial64

После того, как VagrantFile находится у нас в каталоге, необходимо запустить среду командой vagrant up. При первом запуске будет загружен Box c ОС. Далее эта команда будет просто включать ВМ.

При успешном старте в VirtualBox мы увидим новую включенную машину

Далее мы можем подключиться к виртуальной машине через SSH с помощью команды vagrant ssh. Подключение происходит по ssh-ключу логина и пароля нет

Подключившись по SSH, мы увидели версию CentOS 7 и базовые характеристики ВМ. Также виртуальной машиной можно управлять с помощью следующих команд:

  • vagrant halt — выключить ВМ
  • vagrant suspend — приостановить ВМ
  • vagrant reload — перезагрузить ВМ и применить конфигурацию из VagrantFile
  • vagrant destroy <имя машины> — удалить ВМ (Если ВМ одна можно писать просто vagrant destroy)
  • vagrant destroy -f — удалить все виртуальные машины

Если нас не устраивает базовая конфигурация виртуальной машины, то нам необходимо изменить VagrantFile следующим образом:

Vagrant.configure("2") do |config|
 
  #Указываем ОС и версию виртулаьной машины
  config.vm.box = "centos/7"
  
  #Запрещаем проверку обновлений с сервера
  config.vm.box_check_update = false
  
  #Пробрасываем Web-порт виртуальной машины на loacalhost:8080
  config.vm.network "forwarded_port", guest: 80, host: 8088

  #При запуске ВМ будет открываться VirtualBox
  # config.vm.provider "virtualbox" do |vb|
  #   vb.gui = true
  # end
   
   #Указываем имя, отображаемое в VirtualBox
    config.vm.provider "virtualbox" do |v|
     v.name = "C7-vagrant"
    end
   
   
  #Изменяем параметры виртуальной машины
   config.vm.provider "virtualbox" do |v|
    v.memory = 1024
    v.cpus = 2
   end
 
  #Выполнить следующий скрипт при старте вм
   config.vm.provision "shell", inline: <<-SHELL
     yum update
     yum install -y nginx
     setenforce 0
     service firewalld stop
   SHELL
   
end

После изменения VagrantFile необходимо проверить файл на наличие ошибок командой vagrant status, и, если нет ошибок перезапустить ВМ с применением настроек vagrant reload

Оставьте комментарий