Complete DevOps learning path with hands-on labs covering Linux, Docker, Kubernetes, Git, Ansible, and more!
This repository contains comprehensive solutions and detailed explanations for the 100 Days of DevOps Challenge by KodeKloud. Perfect for beginners and professionals looking to master DevOps tools and practices.
- Linux Administration - User management, networking, security
- Containerization - Docker, Docker Compose, container orchestration
- Kubernetes - Pods, deployments, services, volumes, troubleshooting
- Version Control - Git workflows, branching, merging, hooks
- Configuration Management - Ansible automation
- Web Servers - Nginx, Apache, load balancing, SSL
- Databases - MySQL, PostgreSQL, MariaDB
- Infrastructure as Code - Terraform, YAML configurations, best practices
- Star this repository β to keep track of your progress
- Fork the repo to create your own copy
- Start with Day 001 - Linux User Setup
- Follow the daily challenges in order
- Share your progress using
#100DaysOfDevOps
Want to start the official challenge? Use this KodeKloud link - it helps support this project!
Module | Days | Topics Covered | Status |
---|---|---|---|
Linux Fundamentals | 1-20 | User management, SSH, scripting, networking | β Complete |
Version Control | 21-34 | Git workflows, branching, hooks | β Complete |
Containerization | 35-47 | Docker, Docker Compose, networking | β Complete |
Kubernetes | 48-67 | Pods, deployments, volumes, troubleshooting | β Complete |
CI/CD, IaC, Automation | 68-100 | Jenkins, Terraform, Ansible | β³ In Progress |
Day | Challenge | Topics | Solution |
---|---|---|---|
001 | Linux User Setup with Non-interactive Shell | Linux, Kubernetes | Solution |
002 | Temporary User Setup with Expiry Date | Linux | Solution |
003 | Secure SSH Root Access | Linux, Kubernetes | Solution |
004 | Script Execute Permissions | Linux, Git | Solution |
005 | Install and Configuration Selinux | Linux, Security | Solution |
006 | Setup a Cron Job | Linux, Kubernetes | Solution |
007 | Linux SSH Automation | Linux, Ansible | Solution |
008 | Setup Ansible | Linux, Ansible | Solution |
009 | Debugging MariaDB Issues | Linux, Database | Solution |
010 | Create a BASH Script | Linux, Networking | Solution |
011 | Install and Setup Tomcat Server | Linux, Networking | Solution |
012 | Linux Network Services | Linux, Networking | Solution |
013 | IPtables Installation And Configuration | Linux, Networking | Solution |
014 | Linux Process Troubleshooting | Linux, Networking | Solution |
015 | Setup SSL for NGINX | Linux, Nginx | Solution |
016 | Install and Configure NGINX as Load Balancer | Linux, Networking | Solution |
017 | Install and Configure PostgreSQL | Linux, Database | Solution |
018 | Configure LAMP Server (LAMP Stack) | Linux, Database | Solution |
019 | Install and Configure Web Application | Linux, Networking | Solution |
020 | Configure Nginx + PHP-FPM Using Unix Sock | Linux, Nginx | Solution |
021 | Setup Git Repository on Server | Git | Solution |
022 | Clone Git Repository | Git, Linux | Solution |
023 | Fork a repository | Git, Linux | Solution |
024 | Git Branch Create | Git | Solution |
025 | Git Branch Merge | Git, Linux | Solution |
026 | Git Manage Remotes | Git | Solution |
027 | Git Revert Some Changes | Git, Networking | Solution |
028 | Git Cherry Pick | Git | Solution |
029 | Git Pull Request | Git, Linux | Solution |
030 | Git Reset Hard | Git, Linux | Solution |
031 | Git Stash | Git, Linux | Solution |
032 | Git Rebase | Git | Solution |
033 | Git Merge Conflict Resolve | Git, Linux | Solution |
034 | Configure Git Hook | Git, Linux | Solution |
035 | Setup Docker Installation | Linux, Docker | Solution |
036 | Run a NGINX Container on Docker | Docker, Kubernetes | Solution |
037 | Copy File to Docker Container | Docker, Kubernetes | Solution |
038 | Docker Pull Images | Docker | Solution |
039 | Create a Docker Image From a Container | Docker, Git | Solution |
040 | Docker Execution | Linux, Docker | Solution |
041 | Create a Docker File | Docker, Networking | Solution |
042 | Create Docker Network | Docker, Networking | Solution |
043 | Docker Ports Mapping | Docker, Kubernetes | Solution |
044 | Creating a Docker Compose File | Docker, Networking | Solution |
045 | Resolve Dockerfile Issues | Docker, Networking | Solution |
046 | Deploy an App on Docker Containers | Docker, Kubernetes | Solution |
047 | Docker Python App | Docker, Networking | Solution |
048 | Deploy Pods in Kubernetes Cluster | Kubernetes, Docker | Solution |
049 | Deploy Applications with Kubernetes Deployments | Kubernetes, Docker | Solution |
050 | Set Resource Limits in Kubernetes Cluster | Kubernetes, Docker | Solution |
051 | Execute Rolling Updates in Kubernetes | Kubernetes, Docker | Solution |
052 | Execute Rollback in Kubernetes Cluster | Kubernetes, Docker | Solution |
053 | Resolve VolumeMounts Issue in Kubernetes | Kubernetes, Docker | Solution |
054 | Kubernetes Shared Volumes | Kubernetes, Docker | Solution |
055 | Kubernetes Sidecar Containers | Kubernetes, Docker | Solution |
056 | Deploy Nginx Web Server on Kubernetes Cluster | Kubernetes, Docker | Solution |
057 | Print Environment Variables | Kubernetes, Linux | Solution |
058 | Deploy Grafana on Kubernetes Cluster | Kubernetes, Docker | Solution |
059 | Troubleshoot Deployment Issues in Kubernetes | Kubernetes, Networking | Solution |
060 | Persistent Volumes in Kubernetes | Kubernetes, Docker | Solution |
061 | Init Containers in Kubernetes | Kubernetes, Docker | Solution |
062 | Manage Secrets in Kubernetes | Kubernetes, Docker | Solution |
063 | Deploy Iron Gallery App on Kubernetes | Kubernetes, Database | Solution |
064 | Fix Python App Deployed on Kubernetes Cluster | Kubernetes, Docker | Solution |
065 | Deploy Redis Deployment on Kubernetes | Kubernetes, Docker | Solution |
066 | Deploy MySQL on Kubernetes | Kubernetes, Docker | Solution |
067 | Deploy Guest Book App on Kubernetes | Kubernetes, Docker | Solution |
- Basic Linux knowledge - Command line familiarity
- Text editor - vim, nano, or VS Code
- Virtual environment - VirtualBox, VMware, or cloud instances
- Git basics - Version control fundamentals
- Networking concepts - Basic understanding of ports, protocols
- Linux (CentOS, Ubuntu)
- Shell Scripting (Bash)
- System Administration
- Network Configuration
- Docker - Containers, images, networking
- Docker Compose - Multi-container applications
- Container Registry - Image management
- Kubernetes - Pods, deployments, volumes, services, replica set
- kubectl - Cluster management
- YAML - Configuration files
- Git - Branching, merging, rebasing
- GitHub - Collaboration workflows
- Git Hooks - Automation
- Ansible - Automation and configuration
- YAML - Playbooks and inventory
- Nginx - Web server, load balancer, SSL
- Apache - LAMP stack configuration
- MySQL/MariaDB - Database management
- Terrafor - IaC tool to manage cloud resources
- Jenkins - CI/CD pipelines for integration and delivery
- Ansible Playbook - Automation resource management
Master user management, permissions, networking, and system administration basics.
Learn Git workflows, branching strategies, and collaboration techniques.
Understand Docker concepts, image creation, and container orchestration.
Deploy and manage applications in Kubernetes clusters with advanced patterns.
Deploy CI/CD pipelines, provisioning infrastructures, and ansible automation.
Contributions are welcome! If you think any solution steps would be better, Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/improvement
) - Commit your changes (
git commit -am 'Add new solution'
) - Push to the branch (
git push origin feature/improvement
) - Create a Pull Request
- KodeKloud Official Course
- Docker Documentation
- Kubernetes Documentation
- Git Documentation
- Linux Command Reference
If this repository helped you in your DevOps journey:
- Star this repository β
- Fork it to create your own version
- Share it with fellow developers
- Follow me for more DevOps content
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub: @imshakil
- LinkedIn: Connect with me
- Medium: @imshakil
Happy Learning!
Remember: The best way to learn DevOps is by doing. Start with Day 1 and build your skills progressively!