🌟 KodeKloud Eng 100 Days of DevOps Challenge
Mastering DevOps Tools and Practices Through Hands-On Experience
Welcome to my 100 Days of DevOps journey! This repository serves as a comprehensive record of my learning experience through the KodeKloud Engineer challenge, showcasing real-world tasks and projects designed to build practical DevOps expertise. The tasks documented here reflect the specific challenges I encountered during the challenge, including detailed solutions and verification steps. Note : While the core objectives and challenges remain consistent, the specific values (e.g., server names, file paths, or other parameters) in these tasks may differ from those you encounter in your own environment. However, the underlying concepts and problem-solving approaches remain applicable, enabling you to adapt the solutions to your specific context.
🎯 Mission : Transform theoretical knowledge into actionable skills through daily hands-on challenges spanning the entire DevOps ecosystem.
⏱️ Timeline : This project spans 100 consecutive days , with each day introducing new challenges, tools, and learning opportunities to foster expertise in DevOps practices.
🛠️ Technologies & Tools Covered
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
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
📦 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
✅ 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
🔧 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
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)
Clone the repository :
git clone https://github.com/MiqdadProjects/kodekloud-eng-100-days-devops.git
cd kodekloud-eng-100-days-devops
Follow daily challenges :
cd Day-001-User-Management
cat README.md
Track your progress :
Update PROGRESS.md daily
Document learnings and challenges
Share your journey on social media with #100DaysOfDevOps
🗓️ Start Date : [Your Start Date]
📅 Current Day : Day X of 100
⏱️ Days Remaining : X days
🎯 Completion Percentage : X%
🤝 Community & Collaboration
⭐ 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
"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!