<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devops on Zachary Fouts</title><link>https://fouts.dev/tags/devops/</link><description>Recent content in Devops on Zachary Fouts</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 09 Jul 2026 12:50:19 -0500</lastBuildDate><atom:link href="https://fouts.dev/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Deploying K3s with Ansible: A Complete Tutorial</title><link>https://fouts.dev/posts/deploying-k3s-with-ansible-a-complete-tutorial/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://fouts.dev/posts/deploying-k3s-with-ansible-a-complete-tutorial/</guid><description>&lt;h2 id="what-youll-build"&gt;What You&amp;rsquo;ll Build&lt;/h2&gt;
&lt;p&gt;By the end of this tutorial, you&amp;rsquo;ll have a reusable Ansible role that can deploy a K3s Kubernetes cluster to any set of Linux machines: homelab hardware, cloud VPS nodes, or both. The setup includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automated K3s installation&lt;/strong&gt; on server and agent nodes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WireGuard-encrypted&lt;/strong&gt; pod-to-pod networking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embedded etcd&lt;/strong&gt; with HA support and S3 snapshot backups&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iptables firewall rules&lt;/strong&gt; tailored for K3s traffic&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-environment inventories&lt;/strong&gt; so one codebase manages multiple clusters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;ve ever SSH&amp;rsquo;d into a box, run &lt;code&gt;curl https://get.k3s.io | sh&lt;/code&gt;, and hoped for the best, this replaces that with something you can version-control, audit, and rebuild from scratch.&lt;/p&gt;</description></item></channel></rss>