<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elijah Udom | Infrastructure &amp; Cloud Engineer (elijahu)</title><link>https://elijahu.me/portfolio/tags/automation/</link><description>Infrastructure &amp; Cloud Engineering portfolio by Elijah Udom (elijahu) — AWS, Kubernetes, eBPF Security, AI/ML Infrastructure, and Platform Engineering projects.</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 17 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://elijahu.me/portfolio/tags/automation/index.xml" rel="self" type="application/rss+xml"/><item><title>KodeKloud Days 9-12: Databases, Backups, Tomcat, and the Great Port War</title><link>https://elijahu.me/portfolio/projects/kodekloud-days-9-12/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/kodekloud-days-9-12/</guid><description>&amp;ldquo;Every K8s node is a Linux host. Every database that won&amp;rsquo;t start has a reason in the logs. Every &amp;rsquo;no route to host&amp;rsquo; is a firewall issue until proven otherwise.&amp;rdquo;
Context: This series is a deliberate return to Linux fundamentals before going deeper into kernel-level work — CentOS, MariaDB, SELinux, Ansible. The stuff that runs silently under every K8s cluster and eBPF probe. Owning it isn&amp;rsquo;t optional.
Four problems this week: a MariaDB instance that wouldn&amp;rsquo;t start due to a corrupted data directory, a backup automation task requiring passwordless SSH, a Tomcat WAR deployment with a custom port, and a two-layer port conflict that required both evicting a rogue Sendmail process and adding an iptables rule before Apache was reachable.</description></item><item><title>KodeKloud Days 5-8: SELinux, Cron Jobs, and the Great Ansible Adventure</title><link>https://elijahu.me/portfolio/projects/kodekloud-days-5-8/</link><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/kodekloud-days-5-8/</guid><description>&amp;ldquo;Before going deeper into kernel-level work, I went back to Linux fundamentals. This is what runs under every K8s cluster and eBPF probe — owning it isn&amp;rsquo;t optional.&amp;rdquo;
This series is a deliberate return to Linux fundamentals before going deeper into kernel-level work — CentOS, SELinux, Ansible, SSH. The stuff that runs silently under every K8s cluster and eBPF probe. Owning it isn&amp;rsquo;t optional.
Four problems this week: SELinux configuration on a RHEL-based system, cron job automation, passwordless SSH across multiple servers, and Ansible version management for global availability.</description></item><item><title>KodeKloud 100 Days Challenge: Days 1-4 (Or: How I Learned to Stop Worrying and Love the Slow Labs)</title><link>https://elijahu.me/portfolio/projects/kodekloud-days-1-4/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/kodekloud-days-1-4/</guid><description>&amp;ldquo;Before going deeper into kernel-level work, I went back to Linux fundamentals. This is what runs under every K8s cluster and eBPF probe — owning it isn&amp;rsquo;t optional.&amp;rdquo;
This series is a deliberate return to Linux fundamentals before going deeper into kernel-level work — CentOS, user management, SSH hardening, permissions. The stuff that runs silently under every K8s cluster and eBPF probe. Owning it isn&amp;rsquo;t optional.
Four problems this week: non-interactive user creation, temporary account expiry, disabling root SSH across multiple servers, and file permission management.</description></item></channel></rss>