kodekloud-engineer icon indicating copy to clipboard operation
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

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
  • 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

Level 3

Cloud (AWS) - Coming Soon

Cloud (Azure) - Coming Soon

Cloud (GCP) - Coming Soon

Projects - Coming Soon