41554 blogs · [ { "id": "01a08790-5ddc-7190-8a31-17c9baca57e1", "title": "EFS-CSI-Driver and the curse of the missing (deleted) PVC in #Kubernetes", "url": "https://jon.sprig.gs/blog/post/8241", "published_at": "2026-02-10T08:51:34+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9baffd8f4", "title": "Meetup with my tech community of the 2000-2010s – Catching up with GeekUp", "url": "https://jon.sprig.gs/blog/post/8184", "published_at": "2025-10-31T00:47:02+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bb0d52ea", "title": "Getting an asset from a Github Release in Bash", "url": "https://jon.sprig.gs/blog/post/8177", "published_at": "2025-09-24T09:19:44+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bb1536c7", "title": "How I deploy Vaultwarden to provide a Bitwarden compatible service in Kubernetes with Monitoring and Backups", "url": "https://jon.sprig.gs/blog/post/8140", "published_at": "2025-04-06T10:45:14+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bbae1fb6", "title": "Talk Summary – An Eulogy for Auntie Pat", "url": "https://jon.sprig.gs/blog/post/8118", "published_at": "2025-02-17T14:59:10+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bbcacb82", "title": "Building a Linux Firewall with AlmaLinux 9, NetworkManager, BGP, DHCP and NFTables with Puppet", "url": "https://jon.sprig.gs/blog/post/8093", "published_at": "2025-02-17T09:07:51+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bc4ca901", "title": "Quick Tip: Don’t use concat in your spreadsheet, use textjoin!", "url": "https://jon.sprig.gs/blog/post/8090", "published_at": "2024-12-29T09:07:21+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bc8996a1", "title": "A few weird issues in the networking on our custom AWS EKS Workers, and how we worked around them", "url": "https://jon.sprig.gs/blog/post/8078", "published_at": "2024-12-03T11:50:53+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bca7be62", "title": "Talk Summary – OggCamp ’24 – Kubernetes, A Guide for Docker users", "url": "https://jon.sprig.gs/blog/post/8064", "published_at": "2024-11-03T12:21:43+00:00" }, { "id": "01a08790-5ddc-7190-8a31-17c9bd3ee550", "title": "This little #bash script will make capturing #output from lots of #scripts a lot easier", "url": "https://jon.sprig.gs/blog/post/8059", "published_at": "2024-10-21T07:17:29+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd91e62348", "title": "Why (and how) I’ve started writing my Shell Scripts in Python", "url": "https://jon.sprig.gs/blog/post/8025", "published_at": "2024-09-14T23:07:38+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd924b67cf", "title": "Mounting a damaged #ZFS Pool disk to recover data", "url": "https://jon.sprig.gs/blog/post/8009", "published_at": "2024-06-29T22:05:51+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd932864eb", "title": "Making .bashrc more manageable", "url": "https://jon.sprig.gs/blog/post/7994", "published_at": "2024-06-06T10:02:07+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd9365cdaf", "title": "Replacing Be-Fibre’s router with an OpenWRT-based router", "url": "https://jon.sprig.gs/blog/post/7974", "published_at": "2024-04-12T09:21:44+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd9389829a", "title": "A note to myself; resetting error status on proxmox HA workloads after a crash", "url": "https://jon.sprig.gs/blog/post/6330", "published_at": "2024-03-22T11:00:46+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd93f35495", "title": "Using #NetworkFirewall and #Route53 #DNS #Firewall to protect a private subnet’s egress traffic in #AWS", "url": "https://jon.sprig.gs/blog/post/2760", "published_at": "2024-01-14T11:44:51+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd93f7b7d3", "title": "Testing and Developing WordPress Plugins using Vagrant to provide the test environment", "url": "https://jon.sprig.gs/blog/post/3283", "published_at": "2024-01-11T19:38:22+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd949a43d5", "title": "Using Terraform to select multiple Instance Types for an Autoscaling Group in AWS", "url": "https://jon.sprig.gs/blog/post/3269", "published_at": "2024-01-04T22:35:52+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd94d6ffa1", "title": "A Quick Guide to setting up Traefik on a single Docker node inside your home network", "url": "https://jon.sprig.gs/blog/post/3254", "published_at": "2023-12-30T21:17:07+00:00" }, { "id": "01a0bb43-d5ce-733d-8538-49fd95bbdd08", "title": "Pulling container images from private registries (including Docker Hub) with a Kubernetes Kubelet Credential Provider", "url": "https://jon.sprig.gs/blog/post/3172", "published_at": "2023-11-06T11:02:06+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e468a00b", "title": "Create yourself a “Work Profile” to let others know how (and when) to contact you!", "url": "https://jon.sprig.gs/blog/post/3112", "published_at": "2023-10-17T09:32:56+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e4f58f32", "title": "A Quick Fix for “Backend initialization required” from Terragrunt", "url": "https://jon.sprig.gs/blog/post/3155", "published_at": "2023-10-17T08:14:22+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e5533ae1", "title": "Fixing 403 errors from ghcr.io with helm pull", "url": "https://jon.sprig.gs/blog/post/3141", "published_at": "2023-10-04T15:07:13+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e5a4dedb", "title": "How to capture stdout and stderr from a command in a shellscript without preventing piped processes from seeing them", "url": "https://jon.sprig.gs/blog/post/3091", "published_at": "2023-07-27T15:00:13+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e601944a", "title": "Deploying the latest build of a template (machine) image with #Xen #Orchestrator", "url": "https://jon.sprig.gs/blog/post/3076", "published_at": "2023-07-06T13:16:47+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e64d5a8f", "title": "Using direnv with terraform, terragrunt, saml2aws, SOPS and AWS KMS", "url": "https://jon.sprig.gs/blog/post/3057", "published_at": "2023-06-26T22:06:20+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e6d454a3", "title": "IP Address Management using PHPIPAM integrated with Keycloak for SAML2 Authentication", "url": "https://jon.sprig.gs/blog/post/3015", "published_at": "2023-06-07T09:29:15+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e72d7704", "title": "Quick tip: How to stop package installations from auto-starting server services with Debian based distributions (like Ubuntu)", "url": "https://jon.sprig.gs/blog/post/3001", "published_at": "2023-05-28T20:04:31+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e79aacdd", "title": "(Don’t do this!) Note to self; Is your shutdown command causing an error for your packer build? Try this.", "url": "https://jon.sprig.gs/blog/post/2992", "published_at": "2023-05-23T14:45:40+00:00" }, { "id": "01a0bb54-f356-7257-a8e7-7d58e7cddb06", "title": "Using Packer to create an AlmaLinux 9 machine image? Getting an error message about “No enabled repositories” when running dnf or yum? This might be why…", "url": "https://jon.sprig.gs/blog/post/2984", "published_at": "2023-05-23T08:41:43+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973ae2171a5", "title": "Tools I use when writing documentation", "url": "https://jon.sprig.gs/blog/post/2968", "published_at": "2023-05-16T23:47:40+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973aeccb3bd", "title": "Building a Highly Available (HA) two-node Home Lab on Proxmox", "url": "https://jon.sprig.gs/blog/post/2885", "published_at": "2023-05-16T22:26:17+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973af32ae10", "title": "My Home Automation Tooling and Devices", "url": "https://jon.sprig.gs/blog/post/2880", "published_at": "2023-05-09T21:25:10+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b008d181", "title": "DisplayLink and ZFS on Ubuntu = Recovery Console (a work-around)", "url": "https://jon.sprig.gs/blog/post/2863", "published_at": "2023-04-28T11:51:03+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b02956fe", "title": "Note to self… Finding your IP address when HTTP is proxied", "url": "https://jon.sprig.gs/blog/post/2860", "published_at": "2023-04-18T13:30:17+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b078a1ed", "title": "Using multiple GitHub accounts from the Command Line with Environment Variables (using `direnv`) and per-account SSH keys", "url": "https://jon.sprig.gs/blog/post/2853", "published_at": "2023-04-18T08:32:22+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b0a04d35", "title": "Using Github Actions to create Debian (DEB) and RedHat (RPM) Packages and Repositories", "url": "https://jon.sprig.gs/blog/post/2835", "published_at": "2023-03-28T22:58:30+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b131d786", "title": "Quick tip: Preventing `Vagrant Destroy`", "url": "https://jon.sprig.gs/blog/post/2828", "published_at": "2023-03-23T14:25:02+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b16bc938", "title": "Responding to AWS Spot Instance “Instance Actions” (like terminate and stop)", "url": "https://jon.sprig.gs/blog/post/2820", "published_at": "2023-03-21T10:15:59+00:00" }, { "id": "01a0bb5a-a15c-70bc-ad46-3973b20e38d7", "title": "Multipass on Ubuntu with Bridged Network Interfaces", "url": "https://jon.sprig.gs/blog/post/2800", "published_at": "2023-03-02T00:32:59+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d6465bf7f51", "title": "Releasing a Presentation on “An introduction to Multi-Factor Authentication (MFA)”", "url": "https://jon.sprig.gs/blog/post/2766", "published_at": "2023-01-22T00:16:05+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d64667c6a9b", "title": "My review of the LEGO Optimus Prime set 10302", "url": "https://jon.sprig.gs/blog/post/2723", "published_at": "2022-12-28T01:03:06+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d6466dee7d4", "title": "HOWTO: Do DynDNS-style (DDNS) updates with Terraform (without leaking your credentials in the console)", "url": "https://jon.sprig.gs/blog/post/2590", "published_at": "2022-07-21T09:06:09+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d646747908a", "title": "Barcamp Manchester 2022 – my review", "url": "https://jon.sprig.gs/blog/post/2564", "published_at": "2022-07-02T23:29:08+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d64675387c3", "title": "I’m on a #Podcast: “It’s a Chat Episode 53 – More! – #TheMatrix: Reloaded”", "url": "https://jon.sprig.gs/blog/post/2541", "published_at": "2022-06-16T22:34:44+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d6467d25782", "title": "I’m on a #Podcast: “It’s a Chat Episode 52 – Red Pill, Blue Pill – #TheMatrix”", "url": "https://jon.sprig.gs/blog/post/2511", "published_at": "2022-05-31T13:35:53+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d6468cc5f8a", "title": "Releasing files for multiple operating systems with Github Actions in 2021", "url": "https://jon.sprig.gs/blog/post/2442", "published_at": "2021-12-14T23:34:28+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d6469679ed4", "title": "Finding Category IDs in Outlook for OS X", "url": "https://jon.sprig.gs/blog/post/2426", "published_at": "2021-10-29T13:00:17+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d6469e9e1a6", "title": "Talk Summary – BSides Liverpool 2021 “Automating OS Hardening with a little help from my friends, CIS Benchmark and Ansible”", "url": "https://jon.sprig.gs/blog/post/2409", "published_at": "2021-09-25T10:00:52+00:00" }, { "id": "01a0bb62-b4b6-7124-bf00-3d646a29d141", "title": "Making Vagrant install the latest version of Ansible using Pip and run it as root in Ubuntu Virtual Machines", "url": "https://jon.sprig.gs/blog/post/2376", "published_at": "2021-08-25T22:12:56+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b6f396046", "title": "Changing the default routing metric with Netplan, NetworkManager and ifupdown", "url": "https://jon.sprig.gs/blog/post/2370", "published_at": "2021-08-22T19:57:46+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b6f94d8a4", "title": "Cross Platform Decision Records/Architectural Decision Records – a HowTo Guide", "url": "https://jon.sprig.gs/blog/post/2339", "published_at": "2021-08-11T09:40:52+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b703eb58a", "title": "Unit Testing Bash scripts with BATS-Core", "url": "https://jon.sprig.gs/blog/post/2316", "published_at": "2021-07-05T12:51:36+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b7095521d", "title": "Hints and Tips when using Vagrant on Windows", "url": "https://jon.sprig.gs/blog/post/2305", "published_at": "2021-06-29T09:11:16+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b711edcfe", "title": "Idea for Reusable “Custom Data” templates across multiple modules with Terraform", "url": "https://jon.sprig.gs/blog/post/2301", "published_at": "2021-06-20T21:32:48+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b7190361a", "title": "Post-Config of a RaspberryPi Zero W as an OTG-USB Gadget that routes", "url": "https://jon.sprig.gs/blog/post/2268", "published_at": "2021-06-06T22:45:18+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b727b3671", "title": "Debugging Bash Scripts", "url": "https://jon.sprig.gs/blog/post/2251", "published_at": "2021-05-25T13:34:02+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b73318dea", "title": "Post-Config of a RaspberryPi Zero W as an OTG-USB Gadget for off-device computing", "url": "https://jon.sprig.gs/blog/post/2243", "published_at": "2021-05-21T22:16:06+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b737d8616", "title": "Nebula Offline Certificate Management with a Raspberry Pi using Bash", "url": "https://jon.sprig.gs/blog/post/2234", "published_at": "2021-05-12T23:46:29+00:00" }, { "id": "01a0bb68-d6d1-72dd-a82b-e24b73d104c9", "title": "My no-spoilers thoughts on the GitLab Certified Associate certification course and exam", "url": "https://jon.sprig.gs/blog/post/2214", "published_at": "2021-04-27T08:23:21+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7cfd36c0", "title": "Might Amateur Radio be a hobby for you?", "url": "https://jon.sprig.gs/blog/post/2184", "published_at": "2021-03-11T10:20:34+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7d6d111b", "title": "Calling CQ /P without much luck", "url": "https://jon.sprig.gs/blog/post/2179", "published_at": "2021-03-09T10:46:35+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7e1dd442", "title": "Adding MITM (or “Trusted Certificate Authorities”) proxy certificates for Linux and Linux-like Environments", "url": "https://jon.sprig.gs/blog/post/2150", "published_at": "2021-02-25T14:56:43+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7e38ed49", "title": "Debian on Docker using Vagrant", "url": "https://jon.sprig.gs/blog/post/2145", "published_at": "2021-02-16T11:06:20+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7e40e9bd", "title": "When starting WSL2, you get “The attempted operation is not supported for the type of object referenced.”", "url": "https://jon.sprig.gs/blog/post/2140", "published_at": "2021-02-16T07:50:51+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7edc477f", "title": "Using Architectural Decision Records (ADR) with adr-tools", "url": "https://jon.sprig.gs/blog/post/2101", "published_at": "2021-01-20T00:23:01+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7f80e6cd", "title": "Documenting my Career Path", "url": "https://jon.sprig.gs/blog/post/2096", "published_at": "2021-01-13T15:04:23+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7fb8d6e4", "title": "One to read: Reverse Engineering the source code of the BioNTech/Pfizer SARS-CoV-2 Vaccine – Articles", "url": "https://jon.sprig.gs/blog/post/2042", "published_at": "2021-01-11T09:36:47+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7fe2f589", "title": "Sending SSH login notifications to Matrix via Huginn using Webhooks", "url": "https://jon.sprig.gs/blog/post/2045", "published_at": "2021-01-08T15:12:17+00:00" }, { "id": "01a0bb6d-0a21-716b-b376-c69d7ff281bf", "title": "Testing (and failing inline) for data types in Ansible", "url": "https://jon.sprig.gs/blog/post/2031", "published_at": "2020-12-17T20:42:00+00:00" }, { "id": "01a0bb70-e019-7031-b379-957ae8873da1", "title": "Caching online data sources in Ansible for later development or testing", "url": "https://jon.sprig.gs/blog/post/2027", "published_at": "2020-12-17T16:25:52+00:00" }, { "id": "01a0bb70-e019-7031-b379-957ae95c3393", "title": "Review of my Fujitsu Stylistic V727 Laptop/Tablet.", "url": "https://jon.sprig.gs/blog/post/2017", "published_at": "2020-12-11T00:16:19+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aea47a980", "title": "Running services (like SSH, nginx, etc) on Windows Subsystem for Linux (WSL1) on boot", "url": "https://jon.sprig.gs/blog/post/2007", "published_at": "2020-12-10T14:35:08+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aeb03bd28", "title": "Creating tagged AWS EC2 resources (like Elastic IPs) with Ansible", "url": "https://jon.sprig.gs/blog/post/1993", "published_at": "2020-12-01T11:57:39+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aeb41eff6", "title": "AWX – The Gateway Drug to Ansible Tower", "url": "https://jon.sprig.gs/blog/post/1980", "published_at": "2020-11-19T09:21:03+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aeb9b40f8", "title": "Adding your Git Status to your Bash prompt", "url": "https://jon.sprig.gs/blog/post/1940", "published_at": "2020-11-06T13:28:38+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aec7e698c", "title": "Auto-starting an SSH Agent in Windows Subsystem for Linux", "url": "https://jon.sprig.gs/blog/post/1934", "published_at": "2020-11-03T14:17:16+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aecc4b51a", "title": "Using a AWS Dynamic Inventory with Ansible 2.10", "url": "https://jon.sprig.gs/blog/post/1928", "published_at": "2020-10-19T10:48:06+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aece6be63", "title": "Using public #git sources in private projects", "url": "https://jon.sprig.gs/blog/post/1894", "published_at": "2020-10-01T09:53:45+00:00" }, { "id": "01a0bb70-e019-7031-b379-957aede1cc4e", "title": "Recursive Git Submodules", "url": "https://jon.sprig.gs/blog/post/1883", "published_at": "2020-09-29T21:24:25+00:00" }, { "id": "01a0bb74-537f-736f-9e93-4789205103f0", "title": "Getting the default username and AMI for an OS with #Terraform", "url": "https://jon.sprig.gs/blog/post/1875", "published_at": "2020-09-18T22:39:46+00:00" }, { "id": "01a0bb74-537f-736f-9e93-478921452db1", "title": "My journey with Couch To 5k", "url": "https://jon.sprig.gs/blog/post/1866", "published_at": "2020-09-09T19:42:43+00:00" }, { "id": "01a0bb74-537f-736f-9e93-47892202ba30", "title": "Terraform templates with Maps", "url": "https://jon.sprig.gs/blog/post/1830", "published_at": "2020-07-29T10:57:48+00:00" }, { "id": "01a0bb74-537f-736f-9e93-47892284f86e", "title": "Using Feature Flags in Terraform with Count Statements", "url": "https://jon.sprig.gs/blog/post/1832", "published_at": "2020-07-29T10:12:36+00:00" }, { "id": "01a0bb74-537f-736f-9e93-478923368a6b", "title": "Flexibly loading files in Terraform to license a FortiGate firewall on AWS, Azure and other Cloud platforms", "url": "https://jon.sprig.gs/blog/post/1815", "published_at": "2020-07-09T10:15:18+00:00" }, { "id": "01a0bb74-537f-736f-9e93-478923f2f258", "title": "In Ansible, determine the type of a value, and casting those values to other types", "url": "https://jon.sprig.gs/blog/post/1801", "published_at": "2020-07-08T10:16:48+00:00" }, { "id": "01a0bb74-537f-736f-9e93-4789241fe55f", "title": "One to read: Put your bash code in functions", "url": "https://jon.sprig.gs/blog/post/1798", "published_at": "2020-07-01T10:57:50+00:00" }, { "id": "01a0bb74-537f-736f-9e93-4789242241fc", "title": "Writing with Commonmark/Markdown formatting", "url": "https://jon.sprig.gs/blog/post/1765", "published_at": "2020-06-23T09:57:59+00:00" }, { "id": "01a0bb74-537f-736f-9e93-478924591884", "title": "Purposefully Reducing SSH Security when performing Builds of short-lived devices", "url": "https://jon.sprig.gs/blog/post/1760", "published_at": "2020-06-05T10:18:19+00:00" }, { "id": "01a0bb74-537f-736f-9e93-478924ce409e", "title": "wp-upgrade.sh – A simple tool to update and upgrade WordPress components via cron", "url": "https://jon.sprig.gs/blog/post/1755", "published_at": "2020-06-05T09:07:15+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bb53f689", "title": "Using monit to monitor Docker Containers", "url": "https://jon.sprig.gs/blog/post/1738", "published_at": "2020-05-28T07:35:11+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bc446dcd", "title": "Multi-OS builds in AWS with Terraform – some notes from the field!", "url": "https://jon.sprig.gs/blog/post/1700", "published_at": "2020-05-22T07:47:40+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bd2ee22f", "title": "Making Windows Cloud-Init Scripts run after a reboot (Using Terraform)", "url": "https://jon.sprig.gs/blog/post/1723", "published_at": "2020-05-21T16:32:45+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bdf22c89", "title": "Note to self: Linux shell scripts don’t cope well with combined CRLF + LF files… Especially in User-Data / Custom Data / Cloud-Init scripts", "url": "https://jon.sprig.gs/blog/post/1710", "published_at": "2020-05-21T08:43:21+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56be749099", "title": "A quick note on using Firefox in Windows in a Corporate or Enterprise environment", "url": "https://jon.sprig.gs/blog/post/1691", "published_at": "2020-05-11T22:52:51+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bed097a4", "title": "One to read: Installing #Debian on #QNAP TS-219P", "url": "https://jon.sprig.gs/blog/post/1673", "published_at": "2020-05-03T20:28:00+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bee4757e", "title": "Screencast 005: SSH Keys and Client Configuration (a Mentoring style video)", "url": "https://jon.sprig.gs/blog/post/1659", "published_at": "2020-04-09T23:16:19+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bef6585c", "title": "One to read: Ansible for Networking – Part 3: Cisco IOS", "url": "https://jon.sprig.gs/blog/post/1615", "published_at": "2020-03-31T07:22:32+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bf969ba8", "title": "Screencast 004: Gitlab and Ansible Tower / AWX", "url": "https://jon.sprig.gs/blog/post/1639", "published_at": "2020-03-27T20:22:27+00:00" }, { "id": "01a0bb77-889e-7155-b525-2c56bfc1a2e1", "title": "Screencast 003: Gitlab", "url": "https://jon.sprig.gs/blog/post/1630", "published_at": "2020-03-24T18:36:22+00:00" } ] posts Claim your blog
Back to jon.sprig.gs
Blog · corpus.blog/blogs/jon.sprig.gs/posts

jon.sprig.gs

jon.sprig.gs

2026

2025

2024

2023

2022

2021

2020