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
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 😁
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
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 ?