Найти тему
1,2K подписчиков

Vagrant - что это такое и с чем его едят

Согласно википедии это: Свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации, например VirtualBox, и средств управления конфигурациями, таких как Chef, Salt и Puppet.

А если по простому, то это средстве для быстрого разворачивания настроенных виртуальных машин.

Допустим на VBox вы хотите развернуть одну виртуальную машину с виндовс.. ну не сложно, потом вторую.. тож не сложно, это будут полновесные системы как правило..

Но если, вам надо для тестирования админки или других целей сразу установить несколько машин, причём не обязательно с Linux то, при этом один раз можно заморочится, а если постоянно да на разных ПК например...

Для этого и есть Vagrant, вирт машины linux, например, можно разворачивать минимальные или полноценные, как укажите.

Для каких задач может пригодиться Vagrant?

  • Вам нужна виртуальная машина чтобы с чем-то там поиграться;
  • Такой жесткий способ изолировать ненадежное, например, в плане безопасности, приложение ото всей остальной системы;
  • Быстрый способ развернуть на сервере какой-нибудь готовый LAMP ценой накладных расходов на виртуализацию;
  • Проверить, как ведет себя распределенное приложение при сетевых проблемах и падении машин;
  • Еще при тестировании удобно иметь какой-то начальный образ системы, к которому можно откатиться перед следующим прогоном тестов;
  • И опять таки, тестирование — вы разрабатываете под x64 c 16 Гб памяти, а хотите проверить, что программа работает на x86 с 512 Мб памяти;
  • Иногда выгоднее купить одну жирную тачку и разместить на ней несколько ВМ, чем покупать несколько физических машин;
  • В ряде случаев с Vagrant’ом намного удобнее мигрировать приложение с хоста на хост (в частности, передать сайт другому владельцу);
  • Вы сидите под Ubuntu, а вам для решения каких-то задач иногда нужна другая ОС — CentOS, FreeBSD, OpenBSD или Windows;

Скачать и установить Vagrant можно по ссылке https://www.vagrantup.com/downloads

Устанавливаем на Linux Mint

wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant

Далее, у Вас в системе будет папка Vagrant

Заходите в нее в терминале и запускаете файл Vagrant командой:

vagrant up

Предварительно у вас уже установлени VirtualBox и в идеале Git

Отмечу, что файл vagrant, который вы запускаете должен быть расположен в папке vagrant.

Как пример, ниже, мой первый файл vagrant

# Describe VMs
MACHINES = {
# VM name "kernel update"
:"kernel-update" => {
# VM box
:box_name => "duteplyakov/centos-7-5",
# VM CPU count
:cpus => 2,
# VM RAM size (Mb)
:memory => 1024,
# networks
:net => [],
# forwarded ports
:forwarded_port => []
}
}
Vagrant.configure("2") do |config|
MACHINES.each do |boxname, boxconfig|
# Disable shared folders
config.vm.synced_folder ".", "/vagrant", disabled: true
# Apply VM config
config.vm.define boxname do |box|
# Set VM base box and hostname
box.vm.box = boxconfig[:box_name]
box.vm.host_name = boxname.to_s
# Additional network config if present
if boxconfig.key?(:net)
boxconfig[:net].each do |ipconf|
box.vm.network "private_network", ipconf
end
end
# Port-forward config if present
if boxconfig.key?(:forwarded_port)
boxconfig[:forwarded_port].each do |port|
box.vm.network "forwarded_port", port
end
end
# VM resources config
box.vm.provider "virtualbox" do |v|
# Set VM RAM size and CPU count
v.memory = boxconfig[:memory]
v.cpus = boxconfig[:cpus]
end
end
end
end

Так же можно посмотреть несколько ссылок:

https://help.ubuntu.ru/wiki/vagrant

и https://guides.hexlet.io/ru/vagrant/

p.s. есть мысль записать видео на эту тему.

#vagrant #linux #linuxmint #linuxterminal

Согласно википедии это: Свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки.