One of the most frequent questions I get is how can I get into “DevOps/SRE/Ops”. My answer is always, “Go Get yourself a Linux Box, then the rest will come with time.”

Here is a guide on the million ways you can follow to get a linux box.

I am lazy and have can spend some money

Money

I want to have many other things besides a VM Box

Get yourself a free tier from one of the major cloud providers:

  • AWS Free Tier: 750 hours/month worth of t2.micro or t3.micro (1CPU/1G of RAM) usage for the first 12 months.
  • GCP Free Tier: 300$ worth of credit that you can use some of the availbale shapes, in addition to 1 free e2-micro per month.
  • Azure Free Tier: Free (for the first 12 months) 750 hours linux machine with 1CPU (or 2CPUs) and 1GB of RAM.
  • OCI Free Tier: Always free 1CPU/1GB RAM AMD instance or up to 4CPUs/24GB of RAM ARM instances.

I want something cheaper and easier to use

Get yourself a VM machine from small compute providers like DigitalOcean, Linode, …

  • linode: Free 100$ to use on VMs for first 2 months
  • digitalocean: Free 200$ to use for all DO services for first 2 months.

I want something way cheaper and I am okay with DIY

Get yourself a VPS:

  • Contabo: You can get a 6vCPU, 16 RAM, and 200GB of disk storage for as little as 15$ per month.
  • There are many cheaper solutions. check this or this awesome VPS lists.

I am student

  • If you are a student, check with your school adminm there is a high change they signed contracts with cloud providers to provide you with free account.
  • Otherwise go get your GitHub Student Developer Pack.

Linux comes for free in almost all these previous solutions. If you want Windows or other OS VMs additional fees may apply.

I want to get linux VM on my machine

Let’s get to the fun part 😁 Fun Part

I want a custom Linux Box with GUI

  • Get the ISO of your prefered Linux Distribution, and use the GUI from a type-2 GUI like to VirtualBox and VMware Workstation or Virtmanager (Qemu/LibVirt)

I need a minimal linux box with SSH access

  • Vagrant: One of the best solutions if you just want a hassle free Linux box. It can use the most common hypervisors as backends (Virtual Box, VMware Workstation, Libvirt …). Also it supports Linux, Windows and MacOS
  • virt-lightning: Libvirt-only, vagrant inspired experience. You can get ssh access to a local linux box in seconds.

I want more control on my VMs

  • virt-install, virsh and the others: you can use the the more low level tools from the libvirt ecosystem to create VMs and control all the details you want.
  • qemu-system-*: If you know what you are doing you can use the qemu-system commands to control more bits and details.

What if I am using MacOS

Virtualization is hard to reach in MacOS, due to poor support from VirtualBox and Parallels being so closed.

  • Lima: Lima launches Linux VM with automatic file sharing and port forwarding (similar to WSL2).

I just want to get Ubuntu VMs as fast as I can

  • Multipass: It uses KVM to provision Ubuntu VM for you instantly

I want something lighter

containers

I am okay with a Docker container

  • You can use docker of podman to pull any base Linux Image and run a bash into them

I want more tools and a better experience

  • toolbox, distrobox: Spin up a container in seconds with required linux tools preinstalled(your shell, coreutils, …) and your home folder auto-mounted and many more cool feature.

I prefer distrobox personally since it supports many distros out of the box.

I want to have the complete experience using containers

  • LXC/LXD: These are the best if you want an experience similar to a Linux VM but using containers.

There is also incus which is a community backed LXD fork.

Do you know any other ways to get a Linux box ?