TeKanAid

Dark

Table of Contents
HashiCorp Vault 101 - Certified Vault Associate
Get started with HashiCorp Vault and prepare for your Vault Associate Exam
Terraform 101 - Certified Terraform Associate
Learn all you need to know to ace the Terraform Associate Exam and go beyond the certification

DevOps Engineer NOT on Linux? You're MISSING OUT!


Are you a DevOps Engineer but NOT using Linux? You're missing out big time! In this blog post, I'll share with you my recommended setup for Windows users using the Windows Subsystem for Linux (WSL2)

WindowsLinuxUbuntu
Created: July 18, 2022 | Updated: January 27, 2023

Video

Below is a video explanation and demo.

My Recommended DevOps Setup for Windows Users using WSL2

Video Chapters

You can skip to the relevant chapters below:

  • 00:00 - Introduction
  • 00:42 - WSL 2 Installation
  • 06:21 - Windows Terminal Installation
  • 09:49 - Git Installation for WSL 2
  • 11:03 - Visual Studio Code with WSL 2
  • 17:37 - Docker on WSL 2
  • 20:27 - Wrap-up

Overview

As a DevOps Engineer, you really need to embrace Linux. I know this is not easy to hear for the Windows fans out there. While you can run most of the popular DevOps tools directly in Windows. You'll have a much better time running in a Linux environment.

Fortunately, Microsoft has allowed Windows users to run a Linux VM in Windows 10 and higher. This is called Windows Subsystem for Linux 2 or WSL2 for short.

In this blog post, I share with you my recommended setup as a DevOps engineer running WSL2 on my Windows desktop. The above video lectures have been taken from my latest course: Terraform 101 - Certified Terraform Associate

Do you have other alternative setups? Please share them with me in the comments section.


The Main Tools Running in WSL2

The main tools that I use every day running in WSL2 are:

  1. The Windows Terminal
  2. Git
  3. Visual Studio Code
  4. Docker

DevOps Setup for Windows Users


Installing Windows Subsystem for Linux (WSL) is very simple. You just need to enter the following command in an administrator PowerShell window and restart your machine.

wsl --install

For more details, check out this install wsl article.

You will also need to set up your username and password in the Linux/Ubuntu VM. These login credentials are separate from your Windows login credentials. Check out this article for more details.


1. The Windows Terminal

Microsoft provides a really good terminal that allows you to work in multiple environments such as:

  • Windows PowerShell
  • Command Prompt
  • Azure Cloud shell
  • Ubuntu via WSL
  • Other Linux VMs via WSL

There are many great features of this terminal such as splitting the terminal horizontally, vertically, multiple tabs, colour themes, and others. You can check these out by hitting CTRL + SHIFT + P.

The Windows Terminal


For more details, check out this windows terminal installation guide.


2. Git in WSL

The good news is that Git comes already installed with most of the Windows Subsystem for Linux distributions, however, you may want to update to the latest version. You also need to get your git config file set up.

To update git to the latest version on Ubuntu run:

sudo apt-get install git

To configure git:

git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"

For more details, check out the installing Git for Windows users with WSL article.


3. Visual Studio Code in WSL

Visual Studio Code (VS Code) is an excellent Integrated Development Environment IDE. It is used for development in many programming languages and is a go-to for many DevOps Engineers.

Microsoft has allowed us to use VS Code with WSL via the Remote WSL extension. You can download this extension along with a few others that are very helpful via the Remote Development extension pack. You get the Remote - SSH and Remote - Containers extensions as well.

You can then easily open a VS code window from within your WSL environment by typing code . inside your working folder.

Alternatively, you could also open a Remote-WSL folder directly from VS Code by typing CTRL + SHIFT + P like this:

VS Code Remote WSL


For more details, check out the installing Visual Studio Code with WSL article.

4. Docker with WSL

Finally, you would set up Docker Desktop for Windows with WSL2. By enabling WSL 2, you can run both Linux and Windows containers in Docker Desktop on the same machine.

All you need to do is go to the settings page on your Docker Desktop application by clicking the gear icon at the top right. Then Enable the check box: Use the WSL 2 based engine under the General tab.

Docker with WSL General Tab


Next, go to the Resources tab and check the box: Enable integration with my default WSL distro.

Docker with WSL Resources Tab


For more details, check out the Install Docker for WSL article.


Conclusion

This blog post explained how to run a Linux VM within a Windows environment. It's almost impossible for a DevOps engineer not to use Linux on a daily basis. Microsoft made our life much easier by introducing Windows Subsystem for Linux (WSL2) a few years ago. We also saw 4 essential tools to use with WSL2. These are:

  1. The Windows Terminal
  2. Git
  3. Visual Studio Code
  4. Docker

References


Other Posts
Terraform for Beginners - A Beginner's Guide to Automating Cloud Infrastructure
Terraform vs Ansible - Demo the Differences - Part 2
Terraform vs Ansible - Learn the Differences - Part 1
HashiCorp Vault Backup and Restore Raft Snapshots from Kubernetes to AWS S3
AWS Lambda - Terraform Configuration Example with API Gateway
Securing the Future - DevSecOps Trends for 2023
36 Top DevOps Questions to Get You Started in 2023
Terraform to Create a Ubuntu 22.04 VM in VMware vSphere ESXi
HashiCorp Packer to Build a Ubuntu 22.04 Image Template in VMware vSphere
Migrate Secrets from AWS Secrets Manager to HashiCorp Vault with Python, Docker, and GitLab
Migrate Secrets from AWS Secrets Manager to HashiCorp Vault with Terraform
env0 - A Terraform Cloud Alternative
Terraform Import Example - AWS EC2 Instance
DevOps Engineer NOT on Linux? You're MISSING OUT!
HashiCorp Vault API Tutorial and Pro Tips
HashiCorp Vault Tutorial for Beginners
Create a Pihole Docker Ad Blocker with Ansible and Terraform
Terraform vSphere Windows Example to Join an AD Domain
Build a Kubernetes k3s Cluster in vSphere with Terraform and Packer
HashiCorp Packer to Build a Ubuntu 20.04 Image Template in VMware
Consul-Template to Automate Certificate Management for HashiCorp Vault PKI
HashiCorp Vault PKI Secrets Engine Demo for Certificate Management
Jenkins, Vault, Terraform, Ansible, and Consul Delivering an End-to-End CI/CD Pipeline
Secret Zero Problem Solved for HashiCorp Vault
Hashicorp Packer, Terraform, and Ansible to Set Up Jenkins
Hashicorp Vault Azure Secrets Engine - Secure Your Azure Resources
HashiCorp Waypoint - Will it Replace Your CI/CD?
HashiCorp Boundary - Make Sure Your Human To Machine Access Is Secure
HashiCorp Packer for VMware Ubuntu Templates and Terraform for building VMs
HashiCorp Packer VMware Windows Templates and Terraform for VMs
Webblog App Part 4 – HashiStack – Nomad Consul Vault Terraform
Webblog App Part 3 - Consul Connect Service Mesh
Webblog App Part 2 - Secrets Development Phases with Vault
Webblog App Part 1 - Infrastructure as Code with Terraform
Microservices Applications'​ Life Cycle
HashiCorp Vault 201 - Vault for Apps in Kubernetes
Learn how to use HashiCorp Vault for your applications in Kubernetes