https://github.com/miqdadprojects/kodekloud-eng-100-days-devops
A comprehensive collection of hands-on tasks and projects completed during the KodeKloud eng 100 Days of DevOps challenge. This repository covers practical skills in Linux, Docker, Ansible, Git, Kubernetes, AWS, Grafana, CI/CD pipelines, and more, aimed at mastering DevOps tools and practices.
https://github.com/miqdadprojects/kodekloud-eng-100-days-devops
100-days-of-devops ansible aws ci-cd devops docker grafana kodekloud-engineer kubernetes linux mariadb terraform
Last synced: 10 months ago
JSON representation
A comprehensive collection of hands-on tasks and projects completed during the KodeKloud eng 100 Days of DevOps challenge. This repository covers practical skills in Linux, Docker, Ansible, Git, Kubernetes, AWS, Grafana, CI/CD pipelines, and more, aimed at mastering DevOps tools and practices.
- Host: GitHub
- URL: https://github.com/miqdadprojects/kodekloud-eng-100-days-devops
- Owner: MiqdadProjects
- Created: 2025-09-07T09:59:15.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-15T15:43:33.000Z (10 months ago)
- Last Synced: 2025-09-15T17:41:18.630Z (10 months ago)
- Topics: 100-days-of-devops, ansible, aws, ci-cd, devops, docker, grafana, kodekloud-engineer, kubernetes, linux, mariadb, terraform
- Homepage: https://engineer.kodekloud.com/signup?referral=68aacafd8e393d6c859e5cb9
- Size: 94.7 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π KodeKloud Eng 100 Days of DevOps Challenge



*Mastering DevOps Tools and Practices Through Hands-On Experience*
---
## π About This Repository
Welcome to my **100 Days of DevOps** journey! This repository documents my comprehensive learning experience through the KodeKloud Eng challenge, featuring real-world tasks and projects that build practical DevOps expertise.
**π― Mission**: Transform theoretical knowledge into practical skills through daily hands-on challenges covering the entire DevOps ecosystem.
**β±οΈ Timeline**: This project spans **100 consecutive days**, with each day featuring new challenges, tools, and learning experiences.
---
## π οΈ Technologies & Tools Covered
### **System Administration & Infrastructure**



### **Containerization & Orchestration**



### **Configuration Management & Automation**



### **Cloud Platforms**



### **CI/CD & Version Control**




### **Monitoring & Observability**



---
## π
Journey Structure
### **Daily Progression Format**
Each day follows a structured learning approach:
- **π― Daily Objective**: Clear learning goals and outcomes
- **π Task Description**: Real-world scenario and requirements
- **βοΈ Implementation**: Step-by-step solution with commands
- **β
Verification**: Testing and validation procedures
- **π Learning Notes**: Key takeaways and best practices
- **π Resources**: Helpful links and documentation
### **Weekly Themes**
| Week | Focus Area | Days | Key Technologies |
|------|------------|------|------------------|
| 1-3 | **Linux & System Administration** | 1-20 | Linux, Shell Scripting, Web Servers, Databases |
| 4-5 | **Version Control & Git** | 21-34 | Git, Repository Management, Branching, Workflows |
| 6-7 | **Docker & Containerization** | 35-47 | Docker, Images, Containers, Networks, Compose |
| 8-10 | **Kubernetes Orchestration** | 48-67 | Pods, Deployments, Volumes, Services, Applications |
| 11-12 | **Jenkins & CI/CD** | 68-81 | Jenkins Setup, Pipelines, Builds, Automation |
| 13-14 | **Ansible Automation** | 82-93 | Playbooks, Modules, Configuration Management |
| 15 | **Terraform & AWS Cloud** | 94-100 | Infrastructure as Code, VPC, EC2, IAM, CloudWatch |
### **Complete 100-Day Breakdown**
#### **π§ Linux & System Administration (Days 1-20)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 1 | Linux User Setup with Non-Interactive Shell | User Management |
| 2 | Temporary User Setup with Expiry | Account Security |
| 3 | Secure Root SSH Access | SSH Security |
| 4 | Script Execution Permissions | File Permissions |
| 5 | SELinux Installation and Configuration | Security Policies |
| 6 | Create a Cron Job | Task Scheduling |
| 7 | Linux SSH Authentication | Key-based Auth |
| 8 | Install Ansible | Automation Tools |
| 9 | MariaDB Troubleshooting | Database Admin |
| 10 | Linux Bash Scripts | Shell Scripting |
| 11 | Install and Configure Tomcat Server | Application Servers |
| 12 | Linux Network Services | Network Configuration |
| 13 | IPtables Installation And Configuration | Firewall Management |
| 14 | Linux Process Troubleshooting | System Monitoring |
| 15 | Setup SSL for Nginx | Web Server Security |
| 16 | Install and Configure Nginx as an LBR | Load Balancing |
| 17 | Install and Configure PostgreSQL | Database Management |
| 18 | Configure LAMP server | Web Stack |
| 19 | Install and Configure Web Application | Application Deployment |
| 20 | Configure Nginx + PHP-FPM Using Unix Sock | Web Performance |
#### **π Version Control & Git (Days 21-34)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 21 | Set Up Git Repository on Storage Server | Repository Setup |
| 22 | Clone Git Repository on Storage Server | Repository Management |
| 23 | Fork a Git Repository | Collaboration |
| 24 | Git Create Branches | Branch Management |
| 25 | Git Merge Branches | Code Integration |
| 26 | Git Manage Remotes | Remote Repositories |
| 27 | Git Revert Some Changes | Change Management |
| 28 | Git Cherry Pick | Selective Merging |
| 29 | Manage Git Pull Requests | Code Review |
| 30 | Git Hard Reset | History Management |
| 31 | Git Stash | Temporary Storage |
| 32 | Git Rebase | History Rewriting |
| 33 | Resolve Git Merge Conflicts | Conflict Resolution |
| 34 | Git Hook | Automation Triggers |
#### **π³ Docker & Containerization (Days 35-47)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 35 | Install Docker Packages and Start Docker Service | Docker Setup |
| 36 | Deploy Nginx Container on Application Server | Container Deployment |
| 37 | Copy File to Docker Container | File Management |
| 38 | Pull Docker Image | Image Management |
| 39 | Create a Docker Image From Container | Image Creation |
| 40 | Docker EXEC Operations | Container Interaction |
| 41 | Write a Docker File | Image Building |
| 42 | Create a Docker Network | Network Configuration |
| 43 | Docker Ports Mapping | Port Management |
| 44 | Write a Docker Compose File | Multi-container Apps |
| 45 | Resolve Dockerfile Issues | Troubleshooting |
| 46 | Deploy an App on Docker Containers | Application Deployment |
| 47 | Docker Python App | Language-specific Containers |
#### **βΈοΈ Kubernetes Orchestration (Days 48-67)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 48 | Deploy Pods in Kubernetes Cluster | Pod Management |
| 49 | Deploy Applications with Kubernetes Deployments | Deployment Strategies |
| 50 | Set Resource Limits in Kubernetes Pods | Resource Management |
| 51 | Execute Rolling Updates in Kubernetes | Update Strategies |
| 52 | Revert Deployment to Previous Version in Kubernetes | Rollback Procedures |
| 53 | Resolve VolumeMounts Issue in Kubernetes | Storage Troubleshooting |
| 54 | Kubernetes Shared Volumes | Volume Management |
| 55 | Kubernetes Sidecar Containers | Container Patterns |
| 56 | Deploy Nginx Web Server on Kubernetes Cluster | Web Server Deployment |
| 57 | Print Environment Variables | Configuration Management |
| 58 | Deploy Grafana on Kubernetes Cluster | Monitoring Deployment |
| 59 | Troubleshoot Deployment issues in Kubernetes | Debugging |
| 60 | Persistent Volumes in Kubernetes | Storage Solutions |
| 61 | Init Containers in Kubernetes | Initialization Patterns |
| 62 | Manage Secrets in Kubernetes | Security Management |
| 63 | Deploy Iron Gallery App on Kubernetes | Application Deployment |
| 64 | Fix Python App Deployed on Kubernetes Cluster | Application Debugging |
| 65 | Deploy Redis Deployment on Kubernetes | Database Deployment |
| 66 | Deploy MySQL on Kubernetes | Database Management |
| 67 | Deploy Guest Book App on Kubernetes | Full-stack Application |
#### **π§ Jenkins & CI/CD (Days 68-81)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 68 | Set Up Jenkins Server | CI/CD Setup |
| 69 | Install Jenkins Plugins | Plugin Management |
| 70 | Configure Jenkins User Access | Access Control |
| 71 | Configure Jenkins Job for Package Installation | Job Configuration |
| 72 | Jenkins Parameterized Builds | Build Customization |
| 73 | Jenkins Scheduled Jobs | Automated Scheduling |
| 74 | Jenkins Database Backup Job | Backup Automation |
| 75 | Jenkins Slave Nodes | Distributed Builds |
| 76 | Jenkins Project Security | Security Configuration |
| 77 | Jenkins Deploy Pipeline | Deployment Automation |
| 78 | Jenkins Conditional Pipeline | Conditional Logic |
| 79 | Jenkins Deployment Job | Application Deployment |
| 80 | Jenkins Chained Builds | Build Dependencies |
| 81 | Jenkins Multistage Pipeline | Pipeline Architecture |
#### **π§ Ansible Automation (Days 82-93)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 82 | Create Ansible Inventory for App Server Testing | Inventory Management |
| 83 | Troubleshoot and Create Ansible Playbook | Playbook Development |
| 84 | Copy Data to App Servers using Ansible | File Management |
| 85 | Create Files on App Servers using Ansible | File Operations |
| 86 | Ansible Ping Module Usage | Module Basics |
| 87 | Ansible Install Package | Package Management |
| 88 | Ansible Blockinfile Module | File Modification |
| 89 | Ansible Manage Services | Service Management |
| 90 | Managing ACLs Using Ansible | Permission Management |
| 91 | Ansible Lineinfile Module | Line-level Editing |
| 92 | Managing Jinja2 Templates Using Ansible | Template Management |
| 93 | Using Ansible Conditionals | Conditional Logic |
#### **βοΈ Terraform & AWS (Days 94-100)**
| Day | Topic | Focus Area |
|-----|-------|------------|
| 94 | Create VPC Using Terraform | Network Infrastructure |
| 95 | Create Security Group Using Terraform | Security Configuration |
| 96 | Create EC2 Instance Using Terraform | Compute Resources |
| 97 | Create IAM Policy Using Terraform | Identity Management |
| 98 | Launch EC2 in Private VPC Subnet Using Terraform | Private Infrastructure |
| 99 | Attach IAM Policy for DynamoDB Access Using Terraform | Database Access |
| 100 | Create and Configure Alarm Using CloudWatch Using Terraform | Monitoring & Alerting |
---
## π Repository Structure
```
π¦ kodekloud-eng-100-days-devops/
βββ π Days-001-020-Linux-System-Administration/
β βββ π Day-001-Linux-User-Setup-Non-Interactive-Shell/
β βββ π Day-002-Temporary-User-Setup-Expiry/
β βββ π Day-003-Secure-Root-SSH-Access/
β βββ π ... (through Day 20)
βββ π Days-021-034-Version-Control-Git/
β βββ π Day-021-Setup-Git-Repository-Storage-Server/
β βββ π Day-022-Clone-Git-Repository-Storage-Server/
β βββ π ... (through Day 34)
βββ π Days-035-047-Docker-Containerization/
β βββ π Day-035-Install-Docker-Packages-Start-Service/
β βββ π Day-036-Deploy-Nginx-Container-App-Server/
β βββ π ... (through Day 47)
βββ π Days-048-067-Kubernetes-Orchestration/
β βββ π Day-048-Deploy-Pods-Kubernetes-Cluster/
β βββ π Day-049-Deploy-Apps-Kubernetes-Deployments/
β βββ π ... (through Day 67)
βββ π Days-068-081-Jenkins-CICD/
β βββ π Day-068-Setup-Jenkins-Server/
β βββ π Day-069-Install-Jenkins-Plugins/
β βββ π ... (through Day 81)
βββ π Days-082-093-Ansible-Automation/
β βββ π Day-082-Create-Ansible-Inventory-App-Server/
β βββ π Day-083-Troubleshoot-Create-Ansible-Playbook/
β βββ π ... (through Day 93)
βββ π Days-094-100-Terraform-AWS/
β βββ π Day-094-Create-VPC-Using-Terraform/
β βββ π Day-095-Create-Security-Group-Using-Terraform/
β βββ π ... (through Day 100)
βββ π README.md
βββ π PROGRESS.md
βββ π RESOURCES.md
```
---
## π― Learning Objectives
### **Core Competencies**
- β
**System Administration**: Linux mastery, shell scripting, system monitoring
- β
**Infrastructure as Code**: Terraform, CloudFormation, automated provisioning
- β
**Configuration Management**: Ansible playbooks, infrastructure automation
- β
**Containerization**: Docker mastery, container security, optimization
- β
**Orchestration**: Kubernetes deployment, scaling, service management
- β
**CI/CD Pipelines**: Automated testing, deployment, and delivery
- β
**Cloud Platforms**: AWS, Azure, GCP services and best practices
- β
**Monitoring & Observability**: Grafana, Prometheus, log management
### **Professional Skills**
- π§ **Problem Solving**: Debug complex infrastructure issues
- π **Performance Optimization**: System and application tuning
- π **Security Best Practices**: Infrastructure and application security
- π **Scalability Planning**: Design for growth and reliability
- π€ **Collaboration**: DevOps culture and team integration
---
## π¦ Getting Started
### **Prerequisites**
- Basic Linux command line knowledge
- Understanding of networking fundamentals
- Familiarity with at least one programming language
- Access to a Linux environment (physical, VM, or cloud)
### **Setup Instructions**
1. **Clone the repository**:
```bash
git clone https://github.com/MiqdadProjects/kodekloud-eng-100-days-devops.git
cd kodekloud-eng-100-days-devops
```
2. **Follow daily challenges**:
```bash
cd Day-001-User-Management
cat README.md
```
3. **Track your progress**:
- Update `PROGRESS.md` daily
- Document learnings and challenges
- Share your journey on social media with `#100DaysOfDevOps`
---
## π Progress Tracking
### **Current Status**
- ποΈ **Start Date**: [Your Start Date]
- π
**Current Day**: Day X of 100
- β±οΈ **Days Remaining**: X days
- π― **Completion Percentage**: X%
### **Milestones**
- [ ] **Week 3**: Linux System Administration Mastery
- [ ] **Week 5**: Git & Version Control Expert
- [ ] **Week 7**: Docker Containerization Pro
- [ ] **Week 10**: Kubernetes Orchestration Expert
- [ ] **Week 12**: Jenkins CI/CD Pipeline Master
- [ ] **Week 14**: Ansible Automation Specialist
- [ ] **Day 100**: Complete DevOps Engineer! π
---
## π€ Community & Collaboration
### **Connect With Me**
- π§ **Email**: miqdadraja562@gmail.com
### **Join the Challenge**
- β **Star this repository** to follow the journey
- π΄ **Fork it** to start your own 100-day challenge
- π¬ **Share your progress** using `#100DaysOfDevOps`
- π **Pull requests welcome** for improvements and corrections
---
## π Additional Resources
- π **[KodeKloud Platform](https://kodekloud.com/)** - Official learning platform
- π― **[KodeKloud Engineer (Referral Link)](https://engineer.kodekloud.com/signup?referral=68aacafd8e393d6c859e5cb9)** - Join the challenge with my referral
- π **[DevOps Roadmap](https://roadmap.sh/devops)** - Complete learning path
- π **[Cheat Sheets](./resources/cheat-sheets/)** - Quick reference guides
- π οΈ **[Tools & Scripts](./resources/tools/)** - Helpful automation scripts
---
## π« Inspiration
*"The expert in anything was once a beginner who refused to give up."*
This challenge represents a commitment to continuous learning and professional growth in the ever-evolving field of DevOps. Every day brings new challenges, tools, and opportunities to build expertise that will drive infrastructure innovation and operational excellence.
---
### π **Ready to Transform Your DevOps Skills?**
**Let's embark on this 100-day journey together!**
[](./Day-001-User-Management/)
[](./PROGRESS.md)