Build bastion on multiple network sources
19 Apr 2018Requirements
-
Virtualbox
-
Vagrant
Use bridge mode
boxes = [
{ :name => "lab-wifi", :bridge => "en0: Wi-Fi (AirPort)", :cmd => "route add default gw 192.168.11.1"},
{ :name => "oa", :bridge => "en8: USB 10/100/1000 LAN", :cmd => "route add default gw 10.244.58.254"},
{ :name => "lab", :bridge => "en11: USB Ethernet 2", :cmd => "route add default gw 192.168.1.1"}
]
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.box_check_update = false
config.vm.synced_folder '.', '/vagrant', disabled: true
# config.vm.network "public_network"
config.vm.provider "virtualbox" do |v|
v.memory = 128
v.cpus = 1
end
boxes.each do |opts|
config.vm.define opts[:name] do |node|
node.vm.hostname = opts[:name]
node.vm.network "public_network", bridge: opts[:bridge]
node.vm.provision "shell", run: "always", inline: opts[:cmd]
node.vm.provision "shell", run: "always",
inline: "echo 'nameserver 1.1.1.1' > /etc/resolv.conf"
end
end
end
-
Check your interface name and gateway
-
This file will create VMs by different interfaces
Set your ssh config
-
Add
Include ~/.ssh/config.d/*
to your ~/.ssh/config -
vagrant ssh-config > ~/.ssh/config.d/config
-
Use
ssh lab-wifi
orssh oa
to connect your VM