DevOps Onboarding Guide
A foundational setup guide for newcomers to DevOps engineering, backend developers, and anyone establishing a fresh development workstation on Windows.
1 Hardware Requirements
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 16 GB | 32 GB |
| Storage | 500 GB SSD | 1 TB SSD |
| Processor | Intel i5 / AMD Ryzen 5 | Intel i7 / AMD Ryzen 7 |
| OS | Windows 11 | Windows 11 (latest) |
Note: SSD storage is required — Docker and WSL perform poorly on HDD. Make sure Windows is fully updated before proceeding — WSL 2 and Docker depend on recent Windows components.
2 WSL Installation
Open PowerShell as Administrator and run:
wsl –install
Install Ubuntu 24.04 LTS from the Microsoft Store, then update packages:
sudo apt update && sudo apt upgrade -y
Full walkthrough: How to Install Ubuntu in WSL 2 on Windows. Having DNS issues? See How to Make Resolve Config Changes Permanent in WSL 2.
3 Visual Studio Code
Install VS Code from
code.visualstudio.com, then add recommended extensions:
WSL (Microsoft)
GitLens
Docker
HashiCorp Terraform
Python
Pylance
GitHub Copilot (optional)
Claude Code (optional)
Connect to WSL from your terminal:
code .
Need help connecting? See How to Connect VS Code with WSL 2 for Linux Ubuntu.
4 Terminal Customization (Optional)
A good-looking terminal helps with productivity and makes it easier to see which directory, branch, or environment you’re working in. Oh My Posh adds a customizable prompt with Git status, Python/Node versions, and more.
# Install Oh My Posh
curl -s https://ohmyposh.dev/install.sh | bash -s
Full setup guide: How to Make Your WSL Ubuntu Terminal Look Better with Oh My Posh.
5 Docker Desktop
Download from
docker.com/products/docker-desktop. Enable WSL 2 integration during installation.Verify:
docker –version
docker run hello-world
Getting “permission denied”? See Resolving WSL Permission Denied When Connecting to Docker Daemon.
6 Git Configuration
# Install Git
sudo apt install git -y
# Configure user
git config –global user.name “Your Name”
git config –global user.email “your@email.com”
# Generate SSH key (Ed25519)
ssh-keygen -t ed25519 -C “your@email.com”
# Copy public key
cat ~/.ssh/id_ed25519.pub
Add the public key to your GitHub or GitLab account under SSH Keys settings.
Test connection:
ssh -T git@github.com
Want to push without password prompts? See How to Configure Git Pushes Without Authentication Prompts. Need a newer Git version? See How to Upgrade Git on Ubuntu.
7 AWS CLI
curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip”
unzip awscliv2.zip
sudo ./aws/install
# Verify
aws –version
Configure with access keys:
aws configure
You will need: AWS Access Key ID, Secret Access Key, default region (
us-east-1), and output format (json).Using AWS SSO? If your team uses AWS IAM Identity Center (SSO) instead of static access keys, follow How to Configure AWS SSO CLI Access for Linux Ubuntu instead.
Detailed install guide: How to Install AWS CLI v2 on Ubuntu 22.04.
8 Python via pyenv
Use pyenv to manage Python versions — it lets you switch versions per project without messing with the system Python.
# Install dependencies
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev
# Install pyenv
curl https://pyenv.run | bash
Add to your
~/.bashrc or ~/.zshrc:export PYENV_ROOT=“$HOME/.pyenv”
export PATH=“$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init -)”
Then install Python:
pyenv install 3.13.2
pyenv global 3.13.2
9 Node.js via nvm
Use nvm (Node Version Manager) to install and switch between Node.js versions — similar to pyenv for Python.
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# Reload shell
source ~/.bashrc
# Install Node.js 22 LTS
nvm install 22
nvm use 22
nvm alias default 22
Verify:
node -v
npm -v
Need to switch versions later? See How to Switch Node.js Version in WSL Ubuntu.
10 OpenTofu
OpenTofu is an open-source fork of Terraform and a drop-in replacement. It works with existing Terraform files and is the recommended IaC tool for this setup.
# Install OpenTofu via the installer script
curl –proto ‘=https’ –tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh -o install-opentofu.sh
chmod +x install-opentofu.sh
./install-opentofu.sh –install-method deb
rm install-opentofu.sh
# Verify
tofu –version
Full guide: How to Install OpenTofu on WSL2 Ubuntu.
Optional: If your team uses Terraform (HashiCorp) instead, see How to Configure Terraform on WSL Ubuntu for AWS Provisioning.
11 Serverless Framework
npm install -g serverless
# Python requirements plugin (per project)
npm install –save-dev serverless-python-requirements
12 Pre-commit & Code Quality
Set up pre-commit to automatically run linters and formatters before each commit. Catches issues early.
pip install pre-commit
# Verify
pre-commit –version
Inside your project directory, create a
.pre-commit-config.yaml and run:pre-commit install
Full guide: How to Install and Use Pre-commit on Ubuntu WSL 2. For Python formatting, see How to Use Flake8 and Black for Code Quality.
✓ Verification Checklist
Click each item as you verify. All commands should return a version number:
- wsl –version
- git –version
- docker –version
- aws –version
- python –version
- node -v
- npm -v
- tofu –version
- sls –version
- pre-commit –version
Next Steps
- Clone your team repositories and run a local build
- Spin up a Docker container and test a service locally
- Deploy a test Lambda function using Serverless Framework
- Explore your AWS environment with
aws sts get-caller-identity - Launch an EC2 instance on AWS to practice server management
- Set up passwordless SSH login to your servers
- Learn VPC and subnet design for your AWS infrastructure
- Install Claude Code CLI on WSL2 for AI-assisted development