DEV Community

horlartundhey
horlartundhey

Posted on

Week 3 at DMI — When Linux Stopped Being Theory

Week 3 of DevOps Micro Internship was the week Linux stopped being something I read about and became something I broke, diagnosed, and fixed on a real Ubuntu VM.

It started with spinning up an AWS Free Tier account and provisioning the EC2 instance I'd be operating on for the rest of the week. From there, I deployed two real applications through Nginx: a React app built with Node.js and npm, and a personal portfolio site, EpicReads. Both drills covered the same core loop — install the runtime, clone the code, build it, move the build into Nginx's web root, and configure the server block to serve it correctly. Small details mattered more than I expected: file permissions, the right root path, and a working reverse-proxy config were the difference between a blank page and a live site.

Linux
The most valuable part of the week was the Production Maintenance Drill, where I deliberately broke things in order to learn how to recover them. In one simulation, two semicolons went missing from my Nginx config. nginx -t caught the syntax error before I restarted anything, I restored the missing semicolons, re-validated, and restarted the service — confirming recovery with an external curl -I check for a clean 200 OK. In a second simulation, the entire web root was emptied out, and the app started returning 500s even though Nginx itself stayed healthy. Because I'd backed up the deployment beforehand, recovery was just restoring the backup and re-verifying — a small preview of why atomic, versioned deployments matter in real production systems.

Bash Scripting
Alongside that, I worked through Bash scripting fundamentals — variables, arrays, loops, conditionals, and functions — building up to a small automation script. That groundwork paid off immediately in the week's capstone: building an AI-assisted Linux health-check skill with Claude Code. I wrote a triage script, wired it into a Claude Code skill, then simulated a real incident (nginx stopped, port 80 down, HTTP checks failing). The skill correctly gathered evidence and diagnosed the cause from the logs — but it was restricted to read-only analysis by design. Per the project's safety rules, only I, the human, could approve and run the actual fix (sudo systemctl start nginx).

That distinction — AI that investigates and recommends, but doesn't execute — is the same "guardrails, not autopilot" lesson from Week 2, and it's the one I keep relearning: the tooling should make me faster at making decisions, not replace the decision.


P.S. This post is a part of DevOps Micro Internship with Agentic AI Cohort-3 by Pravin Mishra. You can start your DevOps journey by joining the DMI waiting list: https://forms.gle/3hvrWJBDzsDeJoPs6

DMIByPravinMishra

You can follow my graded progress throughout the cohort.

Top comments (0)