Abdellatif Housni: TIL

Things I've learned, collected in abdelhousni/til. Site pattern and tooling adapted from simonw/til.
LinkedIn Badge

85 TILs so far. Atom feed.

Browse by topic: ansible 16 · apache 1 · claude-code 1 · cloud-init 1 · git 4 · github-pages 3 · gitlab-ci 1 · http 1 · kubernetes 13 · linux 3 · nixos 7 · oauth2 1 · packer 2 · podman 7 · proxmox 5 · python 2 · seo 4 · ssh 1 · terraform 4 · tls 3 · vscode 1 · windows 4

Recent TILs

ansible Running playbooks locally in the execution environment production uses - 2026-09-30

Seventh entry in the Ansible development environment series. Part 6 pointed the editor at the team's execution environment (EE), the container image that AAP (Red Hat Ansible Automation Platform) and its automation controller run every job in. This part does the same for the…

ansible Committing the VS Code Ansible settings with the repository - 2026-09-29

Sixth entry in the Ansible development environment series. Part 4 chose where VS Code runs and part 5 installed the tools. This part makes every developer's editor behave the same way on a given repository. The means is two small files committed next to the code: one for…

ansible Ansible Development Tools (ADT): one install, and the Python version decides what you get - 2026-09-29

Fifth entry in the Ansible development environment series. Part 4 chose where the tools run; this one is about the tools themselves. ADT (Ansible Development Tools) is the PyPI package ansible-dev-tools. It's a meta-package: its own code is little more than an adt command, and…

ansible Where to run an Ansible development environment: venv, Dev Container, Remote-SSH, code-server or Dev Spaces - 2026-09-29

Fourth entry in the Ansible development environment series. The first three decide what the runtime is made of and how to lock it. This one decides where the editor and tools run. There are five common answers, and most of the choice comes down to three things: - what the…

ansible Building an Ansible execution environment from a locked requirements file - 2026-09-29

Third entry in the Ansible development environment series. An execution environment (EE) is a container image holding the whole Ansible runtime: ansible-core, ansible-runner, Python packages, collections and system packages. The first entry ranks it against the venv-based…

ansible Locking an Ansible development environment: pip, venv, pip-tools, uv or an execution environment - 2026-09-29

First entry in the Ansible development environment series. An Ansible project needs a runtime on the control node, the machine that runs ansible-playbook. That runtime has five layers, and each tool below fixes some of them:

ansible Pinning ansible-core with pip-tools, uv and Poetry - 2026-09-29

Second entry in the Ansible development environment series; the first ranks all the options. pip-tools, uv and Poetry all do the same job for an Ansible project. They record the exact ansible-core a project runs, plus everything it pulls in, so every laptop and CI job installs…

ansible Handling deployment failures with Ansible's block/rescue/always - 2026-09-29

Saw a LinkedIn post comparing Ansible's block/rescue/always to try/catch — deploy, roll back automatically on failure, alert the team, clean up regardless. It's a real, built-in Ansible feature (current docs), and it's more precise than "try/catch" once you look at what…

python Getting a newer Python on RHEL without touching the system python3 - 2026-09-29

RHEL (and Rocky/Alma/CentOS Stream) ties /usr/bin/python3 to whatever version the OS release shipped with. dnf and a bunch of system tooling depend on that exact interpreter, so replacing it is how you break dnf on the next update. uv, a Python package and project manager from…

terraform What Terraform, OpenTofu, and Packer promise about secrets, and where each promise stops - 2026-09-29

The Ansible Vault entry on this site was framed around a boundary Ansible states outright: encryption there "ONLY protects data at rest." Terraform's equivalent — the sensitive argument — makes no such promise, and it's worth being precise about which of the three tools can…

ansible

github-pages

gitlab-ci

http

podman

proxmox

python

seo

tls

cloud-init

git

oauth2

kubernetes

packer

ssh

terraform

apache

linux

windows

vscode

nixos

claude-code