π KodeKloud Eng 100 Days of DevOps Challenge
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.
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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%
- 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! π
- π§ Email: miqdadraja562@gmail.com
- β 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
- π KodeKloud Platform - Official learning platform
- π― KodeKloud Engineer (Referral Link) - Join the challenge with my referral
- π DevOps Roadmap - Complete learning path
- π Cheat Sheets - Quick reference guides
- π οΈ Tools & Scripts - Helpful automation scripts
"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.