Table of Content
I build dreamcloud/ubuntu18 vagrant box as practice, it is a dev ready vm:
- Guest Tool, shared folder
- gcc/git/python3/pip3
Here is demo how to launch ubuntu18 vm from this base, add 2nd host-only interface for private network.
Vagrantfile
Vagrant.configure("2") do |config| config.vm.box="dreamcloud/ubuntu18" config.ssh.insert_key = false config.vm.box_check_update = false config.vm.define "ubuntu18" do |ub18| ub18.vm.hostname = "ubuntu18" ub18.vm.network :private_network, ip: "192.168.20.10" ub18.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"] vb.name="ubuntu18" vb.memory=1024 end end End
vagrant up
/mnt/c/vagrant/ubuntu18$ vagrant.exe up Bringing machine 'ubuntu18' up with 'virtualbox' provider... ==> ubuntu18: Importing base box 'dreamcloud/ubuntu18'... ==> ubuntu18: Matching MAC address for NAT networking... ==> ubuntu18: Setting the name of the VM: ubuntu18 ==> ubuntu18: Clearing any previously set network interfaces... ==> ubuntu18: Preparing network interfaces based on configuration... ubuntu18: Adapter 1: nat ubuntu18: Adapter 2: hostonly ==> ubuntu18: Forwarding ports... ubuntu18: 22 (guest) => 2222 (host) (adapter 1) ==> ubuntu18: Running 'pre-boot' VM customizations... ==> ubuntu18: Booting VM... ==> ubuntu18: Waiting for machine to boot. This may take a few minutes... ubuntu18: SSH address: 127.0.0.1:2222 ubuntu18: SSH username: vagrant ubuntu18: SSH auth method: private key ==> ubuntu18: Machine booted and ready! ==> ubuntu18: Checking for guest additions in VM... ==> ubuntu18: Setting hostname... ==> ubuntu18: Configuring and enabling network interfaces... ==> ubuntu18: Mounting shared folders... ubuntu18: /vagrant => C:/vagrant/ubuntu18
test vagrant box
shared folder mounted properly,
vagrant@ubuntu18:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 473M 0 473M 0% /dev tmpfs 99M 580K 98M 1% /run /dev/mapper/vagrant--vg-root 62G 1.9G 57G 4% / tmpfs 493M 0 493M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 493M 0 493M 0% /sys/fs/cgroup vagrant 476G 393G 83G 83% /vagrant tmpfs 99M 0 99M 0% /run/user/1000 vagrant@ubuntu18:~$ mount |grep vagrant /dev/mapper/vagrant--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered) vagrant on /vagrant type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=1000,gid=1000) keep in mind the network interface managed by netplan, vagrant@ubuntu18:~$ ls -ltr /etc/netplan/ -rw-r--r-- 1 root root 195 Sep 3 15:54 01-netcfg.yaml -rw-r--r-- 1 root root 114 Sep 3 23:10 50-vagrant.yaml vagrant@ubuntu18:~$ cat /etc/netplan/01-netcfg.yaml # This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes vagrant@ubuntu18:~$ cat /etc/netplan/50-vagrant.yaml --- network: version: 2 renderer: networkd ethernets: enp0s8: addresses: - 192.168.20.10/24 NIC and Internet access, vagrant@ubuntu18:~$ ip a 1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:74:ce:fe brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86283sec preferred_lft 86283sec inet6 fe80::a00:27ff:fe74:cefe/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:50:54:7f brd ff:ff:ff:ff:ff:ff inet 192.168.20.10/24 brd 192.168.20.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe50:547f/64 scope link valid_lft forever preferred_lft forever vagrant@ubuntu18:~$ ip r default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100 192.168.20.0/24 dev enp0s8 proto kernel scope link src 192.168.20.10 vagrant@ubuntu18:~$ cat /etc/resolv.conf nameserver 127.0.0.53 options edns0 vagrant@ubuntu18:~$ ping -c 2 google.ca PING google.ca (172.217.9.163) 56(84) bytes of data. 64 bytes from dfw25s27-in-f3.1e100.net (172.217.9.163): icmp_seq=1 ttl=104 time=65.0 ms 64 bytes from dfw25s27-in-f3.1e100.net (172.217.9.163): icmp_seq=2 ttl=104 time=65.3 ms