KodeKloud Days 5-8 SE Linux and Cron Jobs

Plot twist: Ubuntu isn’t the only Linux operating system. Like a Netflix film that is buffering, KodeKloud’s user interface is also trying my patience.

I received a sobering reminder during the second week of the 100 Days challenge: Ubuntu isn’t the only Linux distribution. After years of DevOps lessons focused on Ubuntu, KodeKloud threw CentOS Stream at me and watched me struggle.

This week, I discovered (and broke) these things.

Why I was startled by this: Ubuntu is used in every DevOps tutorial I’ve ever completed. AWS guides? Ubuntu. Docker labs? Ubuntu. Courses on Kubernetes? Ubuntu. It was similar to showing up to a JavaScript class and being given Assembly code when you encountered CentOS.

Lesson learned: Before presuming you know what distribution you’re running, always check /etc/os-release. Despite what my Ubuntu-trained muscle memory tells me, package managers are not interchangeable.

Day 6: Cron Jobs – Easier Than Expected

Set up a cron job to echo “hello” to every 5 minutes.

Cron syntax breakdown for

  • Position 1 (*/5): Every 5 minutes
  • Position 2 (*): Every hour
  • Position 3 (*): Every day of month
  • Position 4 (*): Every month
  • Position 5 (*): Every day of week

Translation: “Run this every 5 minutes until the heat death of the universe.”

Day 7: Passwordless SSH – The Magic of Public Keys

Set up passwordless SSH from jump host to all app servers. Because typing passwords repeatedly builds carpal tunnel, not character.

Required permissions

Get these wrong and SSH will silently ignore your keys like you ignored the documentation.

Day 8: Ansible Installation – Version Hell

Install Ansible. Sounds simple until they want a specific version available globally on all servers.

  1. Package managers tried: 2 (apt failed, dnf worked)
  2. Cron jobs created: 3 (one per server)
  3. SSH key pairs generated: 1 (4096-bit RSA)

Key Takeaways

Commands I now know by heart:

cat /etc/os-release          # Always check your distro
crontab -l                   # List cron jobs
ssh user@host hostname       # Test passwordless SSH
ansible --version            # Verify Ansible installation
 

Mistakes that taught me:

  1. Always check your OS before running commands
  2. SSH permissions must be exactly right
  3. Global vs user installations matter
  4. Version management is not optional

What’s Next

Days 9-12 coming up:

  • Ansible playbooks (finally using what I installed)
  • Docker fundamentals
  • Network configuration
  • More troubleshooting (probably)

Full Article

This is a condensed version. For the complete writeup with more details, all the commands, and the full story of my UI struggles:

  •  Read the full article

Following this challenge? Drop your “wrong distro” moment in the comments. The first time you tried Ubuntu commands on CentOS, or vice versa. We’ve all been there.

Leave a Reply

Your email address will not be published. Required fields are marked *