====== Vagrant ======
[[https://www.vagrantup.com/|Vagrant]] is an open-source software product for building and maintaining portable virtual software development environments, e.g. for VirtualBox, Hyper-V, Docker, VMware, and AWS.
===== Usage =====
vagrant init debian/jessie64
vagrant up # boot VM
vagrant ssh [name] # connect to VM
==== box ====
add local box:
vagrant box add /path/to/vagrant.box
list all boxes:
vagrant box list
==== plugin ====
install vagrant virtualbox guest additions:
vagrant plugin install vagrant-vbguest
===== Vagrantfile =====
Define multi-node vm:
Vagrant.configure("2") do |config|
config.vm.box = "debian/jessie64"
config.vm.box_check_update = false
config.vm.define :node1 do |node1|
node1.vm.hostname = "node1"
node1.vm.network "private_network", ip: "192.168.33.101"
node1.vm.provider "virtualbox" do |v|
v.name = "node1"
v.memory = "256"
v.cpus = "1"
end
end
config.vm.define :node2 do |node2|
node2.vm.hostname = "node2"
node2.vm.network "private_network", ip: "192.168.33.102"
node2.vm.provider "virtualbox" do |v|
v.name = "node2"
v.memory = "256"
v.cpus = "1"
end
end
end
==== configuration ====
Port forward:
config.vm.network "forwarded_port", guest: 8080, host: 8080
===== Reference =====
* [[https://www.vagrantup.com/docs/index.html|Vagrant Documentation]]
* [[https://favoorr.github.io/2017/01/06/vagrant-virtualbox-vagrantfile-config-best-practices/|vagrant 虚拟机配置最佳实践]]