<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI-assisted administration – apt-upgrade.me – Homelab, Linux &amp; DevSecOps</title><link>https://www.apt-upgrade.me/tag/ai-assisted-administration/</link><description>One nerd's homelab: Linux, Kubernetes, security, and the occasional disaster.</description><language>en-US</language><lastBuildDate>Tue, 06 Oct 2026 13:40:25 +0200</lastBuildDate><atom:link href="https://www.apt-upgrade.me/tag/ai-assisted-administration/index.xml" rel="self" type="application/rss+xml"/><item><title>Two Things My SSDs Were Missing: TRIM After BitLocker, and a Write Cache My HPE Server Quietly Switched Off</title><link>https://www.apt-upgrade.me/2026/10/06/two-things-my-ssds-were-missing-trim-after-bitlocker-and-a-write-cache-my-hpe-server-quietly-switched-off/</link><pubDate>Tue, 06 Oct 2026 13:40:25 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/06/two-things-my-ssds-were-missing-trim-after-bitlocker-and-a-write-cache-my-hpe-server-quietly-switched-off/</guid><description>&lt;p&gt;HP3, my HPE MicroServer Gen10 Plus v2, is back on Debian 13 with OpenZFS. Why it left Windows again is a story for another post. This one is about the restore afterwards, and a setting that had been hiding in plain sight for &lt;em&gt;two operating systems and two blog posts&lt;/em&gt;.&lt;/p&gt;&#10;&lt;p&gt;The plan was boring, the way restores should be: a fresh RAIDZ1 pool over the same three WD Red SA500 SSDs, per-user datasets, then about 1.7 TB copied back from a USB disk with rsync. Same workflow as always: I make the calls, my AI co-admin (Claude) runs the commands and keeps an eye on the numbers. It was the numbers that started looking wrong.&lt;/p&gt;</description></item><item><title>Germany Only: Geo-Fencing SSH with nftables and Ansible (and What My Logs Said About Bots and Readers)</title><link>https://www.apt-upgrade.me/2026/10/01/geo-fencing-ssh-with-nftables-and-ansible/</link><pubDate>Thu, 01 Oct 2026 13:51:27 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/10/01/geo-fencing-ssh-with-nftables-and-ansible/</guid><description>&lt;p&gt;After moving two &lt;a href="https://nextcloud.com/"&gt;Nextcloud&lt;/a&gt; instances to new servers this week, I asked a simple question: &lt;em&gt;do my three servers - this blog and the two Nextclouds - attract different kinds of attackers?&lt;/em&gt; The answer was mostly &amp;ldquo;no, it&amp;rsquo;s the same background noise everywhere&amp;rdquo;. Except for one line that bugged me: &lt;strong&gt;SSH&lt;/strong&gt;. It runs on a non-standard port, accepts keys only, and fail2ban watches it. And yet the blog alone logged around &lt;strong&gt;16 connection attempts per hour&lt;/strong&gt; to the SSH daemon, from all over the world.&lt;/p&gt;</description></item><item><title>Two Minutes Forty-Five: My First Nextcloud App Update via Ansible (and the Guard Rail I Added Just Before)</title><link>https://www.apt-upgrade.me/2026/09/30/two-minutes-forty-five-my-first-nextcloud-app-update-via-ansible-and-the-guard-rail-i-added-just-before/</link><pubDate>Wed, 30 Sep 2026 21:30:02 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/30/two-minutes-forty-five-my-first-nextcloud-app-update-via-ansible-and-the-guard-rail-i-added-just-before/</guid><description>&lt;p&gt;Confession time: the production Nextcloud from the &lt;a href="https://www.apt-upgrade.me/2026/09/21/bare-metal-to-k3s-a-nextcloud-migration-battle-log/"&gt;migration battle log&lt;/a&gt; has been running on K3s for a week, the repo has had an &lt;code&gt;nextcloud-update.yml&lt;/code&gt; playbook for months, and I had never actually run it. Apps were updated the old-fashioned way, by clicking in the admin UI, or not at all. Today that changed. The run itself took &lt;strong&gt;2 minutes 45 seconds&lt;/strong&gt;. The interesting part was everything around it.&lt;/p&gt;&#10;&lt;p&gt;Same workflow as always: I decide, my AI co-admin (Claude) checks, builds and verifies. And the very first thing it found was not a bug in the update logic, but a loaded foot-gun in line three.&lt;/p&gt;</description></item><item><title>The iLO Knows the Temperature, But Not Yesterday’s: Building a Heat History for My Homelab Rack</title><link>https://www.apt-upgrade.me/2026/09/30/the-ilo-knows-the-temperature-but-not-yesterdays-building-a-heat-history-for-my-homelab-rack/</link><pubDate>Wed, 30 Sep 2026 19:15:38 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/30/the-ilo-knows-the-temperature-but-not-yesterdays-building-a-heat-history-for-my-homelab-rack/</guid><description>&lt;p&gt;It started with a simple question on a lazy afternoon: &lt;em&gt;how warm are my three servers, actually?&lt;/em&gt; The iLO answered instantly: intake air 22 to 25 °C, fans idling at 6 %, everything green. Great. Then the follow-up question: &lt;em&gt;and during the heat wave in July?&lt;/em&gt; Silence. The iLO 5 shows temperatures and fans &lt;strong&gt;live only&lt;/strong&gt;. No history, no graph, no &amp;ldquo;last Tuesday&amp;rdquo;. So I built one, and it&amp;rsquo;s on GitHub: &lt;a href="https://github.com/aptupgrademe/ilo-thermal"&gt;&lt;strong&gt;aptupgrademe/ilo-thermal&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>My Own Little Certificate Authority: AD CS, Auto-Enrollment and Goodbye to “Your Connection Is Not Private”</title><link>https://www.apt-upgrade.me/2026/09/29/my-own-little-certificate-authority-ad-cs-auto-enrollment-and-goodbye-to-your-connection-is-not-private/</link><pubDate>Tue, 29 Sep 2026 19:05:28 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/29/my-own-little-certificate-authority-ad-cs-auto-enrollment-and-goodbye-to-your-connection-is-not-private/</guid><description>&lt;p&gt;My homelab has three domain controllers, two clients, three iLO management boards and, until last week, exactly zero certificates anyone had a reason to trust. Every RDP session started with a warning, every iLO greeted me with &lt;em&gt;&amp;ldquo;Your connection is not private&amp;rdquo;&lt;/em&gt; (issuer: &lt;em&gt;Default Issuer (Do not trust)&lt;/em&gt;, which is at least honest), and the domain controllers didn&amp;rsquo;t speak LDAPS at all.&lt;/p&gt;&#10;&lt;p&gt;I don&amp;rsquo;t run many internal web services, so for a while I assumed a private PKI was a solution looking for a problem. Wrong. A Windows domain has plenty of places where certificates quietly make things better. The trick is to let Active Directory hand them out on its own, so that I never have to think about renewing them again.&lt;/p&gt;</description></item><item><title>Day Two Operations: Hardening Three Windows Domain Controllers (and Finding a Clock That Answered to Nobody)</title><link>https://www.apt-upgrade.me/2026/09/28/day-two-operations-hardening-three-windows-domain-controllers-and-finding-a-clock-that-answered-to-nobody/</link><pubDate>Mon, 28 Sep 2026 14:57:03 +0200</pubDate><guid>https://www.apt-upgrade.me/2026/09/28/day-two-operations-hardening-three-windows-domain-controllers-and-finding-a-clock-that-answered-to-nobody/</guid><description>&lt;p&gt;In &lt;a href="https://www.apt-upgrade.me/2026/09/23/enough-yaml-for-now-three-servers-windows-server-2025-and-a-crash-course-on-the-dark-side/"&gt;the last post&lt;/a&gt; three HP boxes became a Windows Server 2025 domain: AD, DNS, DHCP failover, Group Policy, BitLocker, Storage Spaces. That was day one: everything installed, everything green, everything &amp;ldquo;works&amp;rdquo;.&lt;/p&gt;&#10;&lt;p&gt;This post is about &lt;strong&gt;day two&lt;/strong&gt;, the part where you stop admiring the green checkmarks and start asking uncomfortable questions. What time is it, according to whom? Which services are running that nobody asked for? What happens if a server simply doesn&amp;rsquo;t boot tomorrow? Spoiler: one of those questions had a &lt;em&gt;very&lt;/em&gt; funny answer.&lt;/p&gt;</description></item></channel></rss>