Vagrant.configure(2) do |config| config.vm.define "manager" do |manager| manager.vm.box = "bento/ubuntu-18.04" manager.vm.network "private_network", ip: "192.168.0.248" manager.vm.hostname = "manager.example.com" manager.vm.provision "shell", path: "docker_install.sh" manager.vm.network "forwarded_port", guest: 80, host: 8080 manager.vm.network "forwarded_port", guest: 443, host: 8443 manager.vm.network "forwarded_port", guest: 8000, host: 8000 manager.vm.network "forwarded_port", guest: 5000, host: 5000 manager.vm.network "forwarded_port", guest: 6379, host: 6379 end config.vm.define "agent1" do |agent1| agent1.vm.box = "bento/ubuntu-18.04" agent1.vm.network "private_network", ip: "192.168.0.247" agent1.vm.hostname = "docker-agent1.example.com" agent1.vm.provision "shell", path: "docker_install.sh" agent1.vm.network "forwarded_port", guest: 80, host: 8081 agent1.vm.network "forwarded_port", guest: 443, host: 8444 agent1.vm.network "forwarded_port", guest: 8000, host: 8001 agent1.vm.network "forwarded_port", guest: 5000, host: 5001 agent1.vm.network "forwarded_port", guest: 6379, host: 6380 end config.vm.define "agent2" do |agent2| agent2.vm.box = "bento/ubuntu-18.04" agent2.vm.network "private_network", ip: "192.168.0.246" agent2.vm.hostname = "docker-agent2.example.com" agent2.vm.provision "shell", path: "docker_install.sh" agent2.vm.network "forwarded_port", guest: 80, host: 8082 agent2.vm.network "forwarded_port", guest: 443, host: 8445 agent2.vm.network "forwarded_port", guest: 8000, host: 8002 agent2.vm.network "forwarded_port", guest: 5000, host: 5002 agent2.vm.network "forwarded_port", guest: 6379, host: 6381 end end