Skip to main content

Command Palette

Search for a command to run...

Days 3-7: Linux System Administration, Service Management, and Deploying NGINX | #100DaysOfDevOps

Mastering user management, exploring system services, and seeing that glorious NGINX welcome screen on AWS.

Updated
β€’3 min read
Days 3-7: Linux System Administration, Service Management, and Deploying NGINX | #100DaysOfDevOps

Welcome to the end of my first week on the #100DaysOfDevOps journey! Days 3 through 7 were heavily focused on solidifying core Linux administrative skills. While I spent some time revising our previous deep dive into SSH protocols and Bastion Hosts, the bulk of this week was about understanding how Linux environments actually run, how users are managed, and bringing my first web server to life in the cloud.

Here is a breakdown of what I built, learned, and configured over the last few days.

πŸ“¦ Package Managers: The Engines of Installation

Different Linux distributions handle software installation differently. I mapped out the primary package managers:

  • Ubuntu/Debian: apt and snap

  • RedHat: rpm and dnf

  • CentOS: yum

One crucial distinction I learned for Ubuntu environments is the difference between updating and upgrading:

  • update: Checks the repositories for what new software versions are available.

  • upgrade: Actually installs those new versions.

Precision is key when moving through a Linux filesystem. A single slash changes everything:

  • cd / : Takes you to the absolute root directory of the entire filesystem.

  • cd /root : Takes you to the root user's specific home directory.

  • cd root : Attempts to move into a directory named "root" inside your current location (throws an error if it doesn't exist).

πŸ‘₯ Identity and Access: User & Group Management

Managing who has access to what is the bedrock of secure infrastructure. I spent significant time mastering user and group commands:

  • Creating Users: Explored the difference between a simple sudo useradd -m <username> and a more explicit command like sudo useradd -m -s /usr/bin/bash -p <password>, which defines the default shell and password right out of the gate.

  • Group Dynamics: Used sudo groupadd to create groups and cat /etc/group to verify them.

  • Modifying Permissions: The usermod command is incredibly powerful. For instance, running sudo usermod -aG docker ubuntu adds the 'ubuntu' user to the 'docker' group, allowing Docker commands to be run without sudoβ€”a critical step for containerized workflows!

βš™οΈ Controlling the System: Services and Logs

When things go wrong (or right), you need to know how to control the services and read the logs.

  • Service Control: Used systemctl start, systemctl stop, and systemctl status to manage background services daemon.

  • Log Reading: Discovered journalctl. Running a command like journalctl -u nginx allows you to isolate and read the specific logs for the NGINX unit, which is invaluable for troubleshooting.

  • The Manual: When in doubt, the man command (e.g., man useradd) is the ultimate source of truth.

🌐 Hands-On: The NGINX Milestone

The highlight of the week was deploying an NGINX web server on an AWS EC2 instance.

  1. Installed the NGINX package.

  2. Navigated to the AWS Security Group attached to my EC2 instance.

  3. Edited the inbound rules to allow traffic on Port 80 (HTTP).

  4. Entered the public IP into my browser and was greeted by the "Welcome to nginx!" screen.

There is nothing quite like configuring the backend and immediately seeing the frontend result. Week 1 is officially in the books. The foundation is set, and I'm ready to tackle the next phase! πŸ’ͺ

Tags: #100DaysOfDevOps #DevOps #AWS #Linux #CloudComputing #NGINX #SystemAdministration #TechJourney #TrainWithShubham

100 Days of DevOps: From SysAdmin to Cloud Engineer

Part 1 of 2

Welcome to my #100DaysOfDevOps challenge! πŸš€ This series documents my daily journey transitioning from core IT support, server administration, and Linux system management into modern Cloud and DevOps engineering. Over the next 100 days, I am blending low-level system expertise with scalable cloud automation, containerization, and continuous delivery pipelines. πŸ—ΊοΈ What This Series Covers: Phase 1: Foundations β€” Deep-diving into Linux internals, networking protocols, user/group administration, and Git version control. Phase 2: Containerization β€” Mastering Docker, managing multi-container environments, and image optimization. Phase 3: Cloud & IaC β€” Migrating workloads to AWS (EC2, VPC, S3, IAM) and automating infrastructure using Terraform. Phase 4: CI/CD & Orchestration β€” Building automated Jenkins/GitHub Actions pipelines and deploying scalable clusters with Kubernetes. 🎯 My Goal: To demystify real-world infrastructure problems, share hands-on configurations, and build a transparent, step-by-step roadmap for anyone looking to scale their infrastructure skills. Follow along, drop your feedback, and let's build in public! πŸ› οΈ

Up next

Day 2 of #100DaysOfDevOps: Demystifying SSH, Bastion Hosts, and Server Security πŸš€

Deep diving into secure server communication, key-based authentication, and jump servers.