Download the Ubuntu ISO here.
Create a new VM. Here’s the specs I use.
- 2 GB RAM
- 25 GB HDD, dynamically allocated
Once the VM is created, configure a few more properties.
- In System, increase CPUs to 2, and enable PAE
- In Storage, attach the Ubuntu ISO to the optical drive
- In Network > Advanced, set up a port forwarding rule TCP 2222 to 22 for SSH
Start up the new VM and follow the installation prompts. Once installed and rebooted, pause the VM and restart in headless mode.
I ran into errors during installation which I worked around by disabling the network interface for the installation.
From your host CLI, copy a SSH key to the VM.
ssh-copy-id -i ~/.ssh/id_ed25519 user@localhost -p 2222
Don’t have a SSH key?
Generate one.
ssh-keygen -t id_ed25519
Log in to your VM.
ssh user@localhost -p 2222
Do you need to set up a web proxy?
Configure it in /etc/apt/apt.conf
and /etc/environment
.
sudo tee -a /etc/apt/apt.conf <<EOF
Acquire::http::Proxy "http://proxy.example.com:8080";
Acquire::https::Proxy "http://proxy.example.com:8080";
EOF
sudo cp /etc/environment /tmp/environment
sudo tee -a /etc/environment <<EOF
http_proxy=http://proxy.example.com:8080
https_proxy=http://proxy.example.com:8080
HTTP_PROXY=http://proxy.example.com:8080
HTTPS_PROXY=http://proxy.example.com:8080
EOF
Update packages.
sudo apt update && sudo apt upgrade -y
Set up automatic updates
Install unattended-upgrades
. This will update your OS automatically.
Back up original configuration, then enable updates, email notifications, remove unused packages, and automatic reboot.
sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /tmp/50unattended-upgrades
sudo sed -i 's/\/\/"${distro_id}:${distro_codename}-updates";/"${distro_id}:${distro_codename}-updates";/' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i 's/\/\/Unattended-Upgrade::Mail "";/Unattended-Upgrade::Mail "me@example.com";/' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i 's/\/\/Unattended-Upgrade::MailReport "on-change";/Unattended-Upgrade::MailReport "only-on-error";/' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i 's/\/\/Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";/Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";/' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i 's/\/\/Unattended-Upgrade::Remove-Unused-Dependencies "true";/Unattended-Upgrade::Remove-Unused-Dependencies "true";/' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i 's/\/\/Unattended-Upgrade::Automatic-Reboot "false";/Unattended-Upgrade::Automatic-Reboot "true";/' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i 's/\/\/Unattended-Upgrade::Automatic-Reboot-Time "02:00";/Unattended-Upgrade::Automatic-Reboot-Time "02:00";/' /etc/apt/apt.conf.d/50unattended-upgrades
Apply the changes.
sudo systemctl restart unattended-upgrades
Take a VM snapshot.

Want to install Docker?