kodekloud-engineer
kodekloud-engineer copied to clipboard
KodeKloud Engineer solutions
trafficstars
KodeKloud Engineer
Hi folks 👋
- This repository is my journey at KodeKloud Engineer, my solutions will be updated here.
- I also updated the way to solve Linux problems, instead of doing some boring Linux commands, my solution will solve it by leveraging Ansible
Ranking
- Update 24/09/2023: Promoted to Senior DevOps Engineer

SSH commands
| Service Name | Command |
|---|---|
| Nautilus App 1 | ssh [email protected] |
| Nautilus App 2 | ssh [email protected] |
| Nautilus App 3 | ssh [email protected] |
| Nautilus HTTP LBR | ssh [email protected] |
| Nautilus DB Server | ssh [email protected] |
| Nautilus Storage Server | ssh [email protected] |
| Nautilus Backup Server | ssh [email protected] |
| Nautilus Mail Server | ssh [email protected] |
| Jenkins Server for CI/CD | ssh [email protected] |
SSH to server with sshpass
sudo yum install sshpass -y
| Server Name | Purpose | Command |
|---|---|---|
| stapp01 | Nautilus App 1 | sshpass -p Ir0nM@n ssh -o StrictHostKeyChecking=no [email protected] |
| stapp02 | Nautilus App 2 | sshpass -p Am3ric@ ssh -o StrictHostKeyChecking=no [email protected] |
| stapp03 | Nautilus App 3 | sshpass -p BigGr33n ssh -o StrictHostKeyChecking=no [email protected] |
| stlb01 | Nautilus HTTP LBR | sshpass -p Mischi3f ssh -o StrictHostKeyChecking=no [email protected] |
| stdb01 | Nautilus DB Server | sshpass -p 'Sp!dy' ssh -o StrictHostKeyChecking=no [email protected] |
| ststor01 | Nautilus Storage Server | sshpass -p Bl@kW ssh -o StrictHostKeyChecking=no [email protected] |
| stbkp01 | Nautilus Backup Server | sshpass -p H@wk3y3 ssh -o StrictHostKeyChecking=no [email protected] |
| stmail01 | Nautilus Mail Server | sshpass -p Gr00T123 ssh -o StrictHostKeyChecking=no [email protected] |
| jenkins | Jenkins Server for CI/CD | sshpass -p 'j@rv!s' ssh -o StrictHostKeyChecking=no [email protected] |
Getting Started
Jump server information
-
Jumphost:
CentOS 8- user:
thor - password:
mjolnir123
- user:
-
Nautilus App Servers:
CentOS 7
How to solve Linux problems
- Clone the repository:
git clone https://github.com/ntheanh201/kodekloud-engineer.git - Go to folder:
cd kodekloud-engineer - Install Ansible:
./install_ansible.sh - Solve Linux tasks by running Ansible playbook
Test environment
ansible-playbook -i test-environments curriculum/<module_name>/<task>/<level>/solution.yaml
Nautilus environment
ansible-playbook -i environments curriculum/<module_name>/<task>/<level>/solution.yaml
Curriculum
Linux (automated with Ansible)
- See: Linux
Level 1
- Linux Timezones Setting
- Linux User Expiry
- Linux User with Non-interactive Shell
- Linux User Without Home
- Linux File Permissions
- Selinux Installation
- Linux Run Levels
- Disable Root Login
- Linux NTP Setup
- Web Server Security
- Setup SSL for Nginx
- Create a group
- Create a user
- Linux Access Control List
- Linux User Files
- Linux Remote Copy
- Cron schedule deny to users
- Linux Firewalld Rules
- Linux Resource Limits
Level 2
- Create a Cron Job
- Linux Postfix Troubleshooting
- Linux String Substitute
- MariaDB Troubleshooting
- Linux Services
- Linux Banner
- Linux Collaborative Directories
- DNS Troubleshooting
- Linux SSH Authentication
- Linux Find Command
- Linux LogRotate
- Linux Configure sudo
- Install a package
- Linux GPG Encryption
- Configure Local Yum repos
- Linux Bash Scripts
- Application Security
- Add Response Headers in Apache
- Install Ansible
- Linux Firewalld Setup
- Linux Postfix Mail Server
- Install and Configure HaProxy LBR
- Haproxy LBR Troubleshooting
- Apache Troubleshooting
Level 3
- Apache Redirects
Kubernetes
- See: Kubernetes
Level 1
- Create Pods in Kubernetes Cluster
- Create Deployments in Kubernetes Cluster
- Create Namespaces in Kubernetes Cluster
- Set Limits for Resources in Kubernetes
- Rolling Updates in Kubernetes
- Rollback a Deployment in Kubernetes
- Create Replicaset in Kubernetes Cluster
- Create Cronjobs in Kubernetes
- Countdown job in Kubernetes
- Kubernetes Time Check Pod
- Troubleshoot Issue With Pods
- Update an Existing Deployment in Kubernetes
- ReplicationController in Kubernetes
- Fix Issue with VolumeMounts in Kubernetes
Level 2
- Kubernetes Shared Volumes
- Kubernetes Sidecar Containers
- Deploy Nginx Web Server on Kubernetes Cluster
- Print Environment Variables
- Rolling Updates And Rolling Back Deployments in Kubernetes
- Deploy Jenkins on Kubernetes
- Deploy Grafana on Kubernetes Cluster
- Deploy Tomcat App on Kubernetes Cluster
- Deploy Node App on Kubernetes Cluster
- Troubleshoot Deployment issues in Kubernetes
- Fix issue with LAMP Environment in Kubernetes
Level 3
- Deploy Apache Web Server on Kubernetes Cluster
- Deploy LAMP Stack on Kubernetes Cluster
- Init Containers in Kubernetes
- Persistent Volumes in Kubernetes
- Manage Secrets in Kubernetes
- Environment Variables in Kubernetes
- Kubernetes LEMP Setup
- Kubernetes Troubleshooting
- Deploy Iron Gallery App on Kubernetes
- Fix Python App Deployed on Kubernetes Cluster
Level 4
- Deploy Redis Deployment on Kubernetes
- Deploy MySQL on Kubernetes
- Kubernetes Nginx and PhpFPM Setup
- Deploy Drupal App on Kubernetes
- Deploy Guest Book App on Kubernetes
Ansible
- See: Ansible
Level 1
- Ansible Basic Playbook
- Ansible Inventory Update
- Ansible Config File Update
- Ansible Copy Module
- Ansible File Module
Level 2
- Ansible Ping Module Usage
- Ansible Install Package
- Ansible Archive Module
- Ansible Unarchive Module
- Ansible Blockinfile Module
Level 3
- Creating Soft Links Using Ansible
- Managing ACLs Using Ansible
- Ansible Manage Services
- Ansible Lineinfile Module
- Ansible Replace Module
Level 4
- Ansible Facts Gathering
- Ansible Create Users and Groups
- Managing Jinja2 Templates Using Ansible
- Ansible Setup Httpd and PHP
- Using Ansible Conditionals
Docker
- See: Docker
Level 1
- Install Docker Package
- Run a Docker Container
- Docker Delete Container
- Docker Copy Operations
- Docker Container Issue
Level 2
- Pull Docker Image
- Docker Update Permissions
- Create a Docker Image From Container
- Docker EXEC Operations
- Write a Docker File
Level 3
- Create a Docker Network
- Docker Volumes Mapping
- Docker Ports Mapping
- Save, Load and Transfer Docker Image
- Write a Docker Compose File
Level 4
- Resolve Dockerfile Issues
- Resolve Docker Compose Issues
- Deploy an App on Docker Containers
- Docker Node App
- Docker Python App
Git
- See: Git
Level 1
- Git Install and Create Bare Repository
- Git Clone Repositories
- Git Fork a Repository
- Git Repository Update
- Git Delete Branches
Level 2
- Git Install and Create Repository
- Git Create Branches
- Git Merge Branches
- Git Manage Remotes
- Git Revert Some Changes
Level 3
- Git Cherry Pick
- Manage Git Pull Requests
- Git hard reset
- Git Clean
- Git Stash
Level 4
- Git Rebase
- Manage Git Repositories
- Resolve Git Merge Conflicts
- Git Hook
- Git Setup from Scratch
Jenkins
- See: Jenkins
Level 1
- Jenkins Installation
- Jenkins Plugins
- Jenkins Create Users
- Jenkins Folders
- Jenkins Install Packages
Level 2
- Jenkins Views
- Jenkins Parameterized Builds
- Jenkins Workspaces
- Jenkins Database Backup Job
- Jenkins Scheduled Jobs