Баги
Не работает сеть в ubuntu-16.04
Чтобы прописать статический IP виртуалке, нужно в Vagrantfile добавить
config.vm.box = "bento/ubuntu-16.04"
config.vm.network "private_network", ip: "33.33.33.10", auto_config: false
config.vm.provision 'shell', inline: "ifconfig eth1 33.33.33.10"
На ubuntu-12.04 таких проблем нет, просто хватает
config.vm.box = "ubuntu/precise64"
config.vm.network "private_network", ip: "192.168.177.10"
Установка
1) Устанавливаем виртуалбокс и вагрант
sudo apt-get install vagrant
sudo apt-get install virtualbox
2) Качаем бокс с убунтой
vagrant box add ubuntu/xenial64
Список боксов можно посмотреть через list
vagrant box list
ubuntu/xenial64 (virtualbox, 20190429.0.1)
Удалить бокс
vagrant box remove ubuntu/trusty64
Removing box 'ubuntu/trusty64' (v20190429.0.1) with provider 'virtualbox'...
3) Создаем Vagrantfile с указаной машиной
vagrant init hashicorp/precise32
4) Запускаем бокс
vagrant up
4) Получить список машин
vagrant global-status
id name provider state directory
-------------------------------------------------------------------------
a35990f default virtualbox poweroff /home/avis/vagrant
Настройка
Подключение по ssh
vagrant ssh
Остановка машины
vagrant suspend
Выключение машины
vagrant halt
Останавливает и уничтожает машину.
vagrant destroy
Перезагрузка с перечтением конфига
vagrant reload --provision
Если передать ключик --provision
, то при старте будет перечитан Vagrantfile, иначе будет старый конфиг.
Настройка Vagrantfile
Все действия внутри `Vagrant.configure(2) do |config|` ... `end`
Задать имя в vagrant global-status
config.vm.define "ubuntu1" do |t|
end
Задать имя в VirtualBox
config.vm.provider "virtualbox" do |v|
v.name = "ubuntu1"
end
Задаем ip
! Не работает
config.vm.network "private_network", ip: "192.168.33.10"
Проброс порта
— Он направит 80-й порт изнутри на 8000-й снаружи;
т.е. Внутри машины - localhost:80, снаружи - ip:8000
config.vm.network :forwarded_port, guest: 80, host: 8000
Маунт дир с тачки в виртуалку
config.vm.synced_folder ".", "/project"