Vagrantfile

В конфигурационном файле Vagrantfile содержатся настройки виртуальной среды. Vagrant предназначен для работы с одним Vagrantfile. Это сделано для того чтобы другие участники проекта могли с легкостью запускать код проекта в виртуальной среде.

Синтаксис Vagrantfiles такой же как и в языке программирования Ruby, но программировать на нем не придется. В основном все сводиться к указанию параметра и присвоению ему значения.

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

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_version = "2004.01"
end

Параметр config.vm.box содержит имя виртуального образа, а config.vm.box_version его версию. Наиболее распространенные образы содержаться в облачном хранилище Vagrant, но можно создавать свои на их основе.

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

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_version = "2004.01"
  
  
  config.vm.provider "virtualbox" do |vb|
     vb.memory = "4096"
     vb.cpus = 2
  end
  
end

В параметре vb.memory указывается количество выделяемой оперативной памяти, а в параметре vb.cpus количество виртуальных ядер.

Значение объема выделяемой оперативной памяти не должно быть больше чем половина всей памяти компьютера. То же правило касается и виртуальных ядер.

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

$script = <<-SCRIPT
#!/bin/bash

#some commands 

SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_version = "2004.01"
  
  config.vm.provision "shell" do |s|
    s.inline= $script
  end  
  
  config.vm.provider "virtualbox" do |vb|
     vb.memory = "4096"
     vb.cpus = 2
  end
  
end

Параметр s.inline принимает значение переменной $script , которая содержит в себе некоторые команды командной строки гостевой операционной системы.

Задание в данном модуле предполагает установку любого пакета в виртуальной среде, используя последний вид файла Vagrantfile.

Last updated