Config file driven multi-machine environment with NAT network and static IP addresses. Uses Hyper-V on Windows, Libvirt on Ubuntu and VirtualBox on MacOS.
Based on the original work found here and here.
- Virtualbox:
brew install virtualbox
- Vagrant:
brew install vagrant
- Vagrant Manager:
brew install vagrant-manager
- Ubuntu with libvirt
- Vagrant (tested with v2.2.18)
- Vagrant libvirt provider
Other Linux distros should work but are untested.
git clone --depth=1 https://github.com/hitachienergy/vagrant-multi-vm-env.git
-
Open command prompt as administrator
-
Go to project's directory
Windows (Hyper-V):
cd vagrant-multi-vm-env/hyperv
Ubuntu (Libvirt):
cd vagrant-multi-vm-env/libvirt
MacOS (VirtualBox):
cd vagrant-multi-vm-env/virtualbox
-
Edit
config.yml
file -
Run Vagrant
-
Create environment
vagrant up
-
Stop environment
vagrant halt
-
Destroy environment (append
-f
to destroy without confirmation)vagrant destroy
-
Create snapshot of entire environment
vagrant snapshot save <snapshot-name>
-
Create snapshot of single machine
vagrant snapshot save <vm-name> <snapshot-name>
-
Restore environment from snapshot
vagrant snapshot restore <snapshot-name>
-
List snapshots
vagrant snapshot list
-
Remove snapshot
vagrant snapshot delete <snapshot-name>
-
-
Connect to VM
-
Using SSH client
ssh vagrant@<vm-ip>
-
Using Vagrant
vagrant ssh [options] [name|id] [-- extra ssh args]
-
This project was tested with the following boxes:
- almalinux/8
- centos/7
- generic/rhel7
- generic/rhel8
- generic/rocky8
- generic/ubuntu1804
- generic/ubuntu2004