DevOps Linux Mastery

DevOps Linux Mastery

·

3 min read

Linux & Terminal Commands Project: Beginner to Advanced for DevOps

Objective:

Master Linux and terminal commands from beginner to advanced levels while building a DevOps-focused project. By the end, you’ll have hands-on experience with Linux, scripting, automation, and integration with DevOps tools like Docker and Kubernetes.

Project Structure:

DevOps-Linux-Project/
├── scripts/         # Bash scripts for automation
├── logs/            # Log files for the project
├── backups/         # Backup files
├── configs/         # Configuration files
└── README.md        # Documentation

Phase 1: Basics of Linux

1. Setup

Example: Install Ubuntu

  • Install Ubuntu (or any Linux distribution) on a virtual machine or dual boot.

  • Familiarize yourself with the terminal

2. Basic Commands

Example: Create Project Structure

  • Learn and practice: ls, cd, pwd, mkdir, touch, rm, cp, mv.

  • Create the project directory structure:

  •   mkdir -p DevOps-Linux-Project/{scripts,logs,backups,configs}
    

3. File Manipulation

Example: Modify Permissions

  • Use editors like nano and vi to create and edit files.

  • Practice file permissions:

  •   chmod +x scripts/*
      chown $USER:$USER logs/
    

4. Practice Script

Example: Automate Directory Creation

Write a script to automate the creation of the project structure:

#!/bin/bash
mkdir -p DevOps-Linux-Project/{scripts,logs,backups,configs}
touch DevOps-Linux-Project/{scripts/script1.sh,logs/app.log,configs/app.conf}
echo "Project structure created!"

Phase 2: Intermediate Linux Skills

1. Process Management

Example: List Running Processes

  • Learn ps, top, kill, jobs, bg, fg.

2. Networking Commands

Example: Check Connectivity

  • Practice ping, curl, wget, ifconfig.

3. Archiving and Compression

Example: Compress Logs

  • Use tar, gzip, gunzip, zip, unzip.

4. Task Automation

Example: Schedule Backups

  • Schedule a daily backup of the logs/ directory using cron:

  • ```python crontab -e Add the following line: 0 2 * tar -czf ~/DevOps-Linux-Project/backups/logsbackup$(date +\%F).tar.gz ~/DevOps-Linux-Project/logs/



## **Phase 3: Advanced Linux Skills**

### **1\. Advanced Scripting**

#### **Example:** Monitor Disk Usage

Write a script to monitor disk usage and send an alert if it exceeds a threshold:

```python
#!/bin/bash
THRESHOLD=80
USAGE=$(df / | grep / | awk '{print $5}' | sed 's/%//g')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
    echo "Disk usage is above $THRESHOLD%. Current usage: $USAGE%"
fi

2. User and Group Management

Example: Add a User

  • Add/remove users and groups.

  • Manage permissions and ownership.

3. Log Analysis

Example: Search Logs

  • Use cat, grep, awk, tail, and head to analyze logs in logs/app.log.

4. Version Control

Example: Initialize Git Repository

Initialize a Git repository and commit the project files:

git init
git add .
git commit -m "Initial commit"

Phase 4: DevOps Integration

1. Docker Integration

Example: Create a Dockerfile

  • Create a Dockerfile to containerize a Bash script:
FROM ubuntu:latest
COPY scripts/monitor.sh /usr/local/bin/monitor.sh
RUN chmod +x /usr/local/bin/monitor.sh
CMD ["/usr/local/bin/monitor.sh"]

2. Ansible Playbooks

Example: Automate Script Deployment

  • Write a playbook to deploy the scripts and configure cron jobs.

3. Kubernetes Deployment

Example: Deploy as CronJob

  • Deploy the Dockerized script as a Kubernetes CronJob.

Final Phase: Documentation and Submission

1. Documentation

Example: Write README

  • Write a detailed README.md file explaining:

    • Project overview

    • Commands used

    • Scripts and their purpose

    • Integration with DevOps tools

2. Project Submission

Example: Push to GitHub

  • Push the project to your GitHub repository:
git remote add origin <repository_url>
git push -u origin main

Outcome:

By completing this project, you will:

  • Gain proficiency in Linux commands.

  • Develop automation scripts.

  • Integrate Linux skills with DevOps tools like Docker, Ansible, and Kubernetes.

  • Build a portfolio-ready project showcasing your Linux and DevOps expertise.