<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Let's Encrypt with Ansible on Network Doodles</title><link>https://networkdoodles.com/series/letsencrypt-ansible/</link><description>Recent content in Let's Encrypt with Ansible on Network Doodles</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 02 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://networkdoodles.com/series/letsencrypt-ansible/index.xml" rel="self" type="application/rss+xml"/><item><title>Managing TLS Certificates Using Ansible and Let’s Encrypt! PART 2.2:</title><link>https://networkdoodles.com/posts/letsencrypt-part2_2/</link><pubDate>Mon, 02 Nov 2026 00:00:00 +0000</pubDate><guid>https://networkdoodles.com/posts/letsencrypt-part2_2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Continuing from &lt;a href="https://networkdoodles.com/posts/letsencrypt-part2_1/"&gt;Part 2.1&lt;/a&gt;, where we pushed certificates to a Cisco ASA, this post does the same thing for &lt;strong&gt;F5 BIG-IP&lt;/strong&gt;. The certificates still come from the &lt;code&gt;cert-store&lt;/code&gt; repository we built in &lt;a href="https://networkdoodles.com/posts/letsencrypt-part2/"&gt;Part 2&lt;/a&gt;, and the playbook still runs from AWX/AAP. What&amp;rsquo;s new is a playbook that uploads the certificate, key and chain to the F5 and builds (or updates) a client SSL profile for each one.&lt;/p&gt;</description></item><item><title>Managing TLS Certificates Using Ansible and Let’s Encrypt! PART 3:</title><link>https://networkdoodles.com/posts/letsencrypt-part3/</link><pubDate>Mon, 02 Nov 2026 00:00:00 +0000</pubDate><guid>https://networkdoodles.com/posts/letsencrypt-part3/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;So far in this series we&amp;rsquo;ve built the pieces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://networkdoodles.com/posts/letsencrypt-part1/"&gt;Part 1&lt;/a&gt;: request a certificate with Ansible Core and Cloudflare DNS-01&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networkdoodles.com/posts/letsencrypt-part2/"&gt;Part 2&lt;/a&gt;: run that from AWX/AAP and store the result in a &lt;code&gt;cert-store&lt;/code&gt; Git repo&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networkdoodles.com/posts/letsencrypt-part2_1/"&gt;Part 2.1&lt;/a&gt;: deploy to a Cisco ASA&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networkdoodles.com/posts/letsencrypt-part2_2/"&gt;Part 2.2&lt;/a&gt;: deploy to an F5 BIG-IP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every one of those still needs someone to click the rocket icon. This part removes the human. We&amp;rsquo;ll build an AWX/AAP &lt;strong&gt;workflow&lt;/strong&gt; that runs every morning, checks every certificate, renews only the ones that are due, deploys them, verifies them, and only bothers you when something goes wrong.&lt;/p&gt;</description></item><item><title>Managing TLS Certificates Using Ansible and Let’s Encrypt! PART 4:</title><link>https://networkdoodles.com/posts/letsencrypt-part4/</link><pubDate>Mon, 02 Nov 2026 00:00:00 +0000</pubDate><guid>https://networkdoodles.com/posts/letsencrypt-part4/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In &lt;a href="https://networkdoodles.com/posts/letsencrypt-part3/"&gt;Part 3&lt;/a&gt; we built a workflow that renews, deploys and verifies certificates on its own. Technically, we&amp;rsquo;re done. Then the change advisory board finds out that something is changing production firewalls and load balancers every few weeks with no change record, and suddenly we&amp;rsquo;re not done.&lt;/p&gt;</description></item><item><title>Managing TLS Certificates Using Ansible and Let’s Encrypt! PART 2.1:</title><link>https://networkdoodles.com/posts/letsencrypt-part2_1/</link><pubDate>Tue, 29 Oct 2024 00:00:00 +0000</pubDate><guid>https://networkdoodles.com/posts/letsencrypt-part2_1/</guid><description>&lt;h3 id="part-21-deploying-lets-encrypt-certificates-to-an-asa-using-ansible-with-awxaap"&gt;Part 2.1: Deploying Let&amp;rsquo;s Encrypt Certificates to an ASA Using Ansible with AWX/AAP&lt;/h3&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Continuing from &lt;a href="https://networkdoodles.com/posts/letsencrypt-part2/"&gt;Part 2 of our series&lt;/a&gt;, this tutorial will guide you through Let&amp;rsquo;s Encrypt certificates using AWX/Ansible Automation Platform to an ASA firewall. There will be a new playbook to apply the certificate to the ASA, but running the playbook will be the same as in &lt;a href="https://networkdoodles.com/posts/letsencrypt-part2/"&gt;Part 2 of our series&lt;/a&gt;. You will also have to make sure you have a few Prerequisites setup a head of time.&lt;/p&gt;</description></item><item><title>Managing TLS Certificates Using Ansible and Let’s Encrypt! PART 2:</title><link>https://networkdoodles.com/posts/letsencrypt-part2/</link><pubDate>Sun, 21 Jul 2024 00:00:00 +0000</pubDate><guid>https://networkdoodles.com/posts/letsencrypt-part2/</guid><description>&lt;h1 id="part-2-managing-certificates-with-awxansible-automation-platform-and-gitops"&gt;Part 2: Managing Certificates with AWX/Ansible Automation Platform and GitOps&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Continuing from Part 1, this tutorial will guide you through managing Let&amp;rsquo;s Encrypt certificates using AWX/Ansible Automation Platform. We can use the exact same playbook from part 1 with a few modifications. You will also have to make sure you have a few Prerequisites setup a head of time.&lt;/p&gt;</description></item><item><title>Managing TLS Certificates Using Ansible and Let’s Encrypt! PART 1:</title><link>https://networkdoodles.com/posts/letsencrypt-part1/</link><pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate><guid>https://networkdoodles.com/posts/letsencrypt-part1/</guid><description>&lt;h1 id="part-1-basics-of-using-ansible-core-to-request-a-lets-encrypt-certificate"&gt;Part 1: Basics of Using Ansible Core to Request a Let&amp;rsquo;s Encrypt Certificate&lt;/h1&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ansible Core&lt;/strong&gt; installed on your control node.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ansible Vault&lt;/strong&gt; enabled.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cloudflare account&lt;/strong&gt; with API token and DNS Zone ID for the zone your using to create the Certificate.&lt;/p&gt;</description></item></channel></rss>