This Ansible playbook automates the setup of a development workstation focused on DevOps, containerization, and cloud infrastructure tooling. It's designed to work on Ubuntu-based systems including WSL2 and Multipass virtual machines.
This playbook provisions a Linux development environment with essential tools for:
- Container development and orchestration (Docker, Kubernetes)
- Infrastructure as Code (Terraform)
- Package management and system maintenance
- Cloud-native development workflows
- WSL2 with Ubuntu
- Multipass VMs running Ubuntu
- Other Ubuntu-based systems
- Essential system utilities and package management tools
- Bash completion support
- Security certificates and transport utilities
- Docker - Container runtime and tooling
- Docker Compose - Multi-container application management
- kubectl - Kubernetes command-line interface
- Helm - Kubernetes package manager
- minikube - Local Kubernetes clusters
- k9s - Terminal UI for Kubernetes
- kubectx - Kubernetes context switching
- Krew - Kubernetes plugin manager
- Terraform - Infrastructure provisioning tool
- Ubuntu-based Linux environment (WSL2, Multipass, or native)
- Internet connection for package downloads
- Sudo privileges for package installation
-
Clone this repository:
git clone https://github.com/Tanis74/setup.git cd setup -
Run the bootstrap script to install Ansible:
sudo sh bootstrap.sh
-
Execute the playbook:
ansible-playbook -K playbook.yml
The playbook is organized into two main roles:
- Packages Role: Updates the system and installs essential packages
- Ops Role: Installs DevOps and cloud-native tooling including:
- Docker and Docker Compose
- Kubernetes tools (kubectl, Helm, minikube)
- Terraform for infrastructure provisioning
- Additional Kubernetes utilities (k9s, kubectx, Krew)
You can customize the installed versions by modifying the variables in roles/ops/defaults/main.yml:
- Kubernetes version
- Krew version
- k9s version
- minikube version
If you encounter permissions issues, fix them with:
chmod 700 /path/to/setupThis commonly occurs with WSL installations.
This project was inspired by various Ansible workstation setup repositories and community resources for DevOps environment automation.