Skip to content
DevOps Madnessa blog by Ioannis Moustakis

Ansible

Ansible is an agentless automation tool. It connects to machines over SSH or WinRM, runs small units of work called modules, and reports what changed. There is no agent to install on managed hosts and no server to stand up before the first playbook runs. That low floor is a big part of why it spread so widely. Today it handles configuration management, application deployment, ad hoc operations across fleets, and orchestration of multi-step changes. The module ecosystem covers most of what a platform team touches: package managers, services, files and templates, cloud APIs, network devices. Playbooks are YAML, which keeps them readable in review, and most modules are idempotent, so a playbook can run repeatedly and only act when a host drifts from the described state. Red Hat maintains the project, collections package third-party content, and AWX or the Automation Platform add scheduling and RBAC when a team outgrows the CLI.

The Terraform question comes up in almost every Ansible conversation, and the split is cleaner than the debates suggest. Terraform provisions infrastructure: it creates cloud resources, tracks them in a state file, and computes a plan before it changes anything. Ansible configures what already exists: it installs packages, writes config files, restarts services, and enforces settings inside machines. Ansible keeps no state file; each run inspects the hosts and converges them toward the playbook. The common pattern uses both tools. Terraform brings up the instances, networks, and load balancers, then Ansible turns blank machines into working ones. Ansible can also provision cloud resources directly, and one of the guides below covers where that works and where the lack of state becomes a problem.

>>> Ansible still has a place as a core automation backbone tool by shifting from simple script execution to AI-assisted playbook generation, event-driven self-healing workflows, and tight cooperative orchestration alongside Terraform in multi-cloud environments.

Everything linked on this page is mine. I wrote all seventeen guides for Spacelift between 2022 and 2026, covering the tool from first playbook to CI/CD integration. Each link below goes to a short commentary post on this site, and every one of those posts carries the outbound link to the full article. The sections follow the order I would learn the tool in. Start here covers the four fundamentals: the tutorial, playbooks, inventory, and variables. Read those in order and you can automate real work the same week. Day-2 techniques collects the features that keep playbooks maintainable once they grow: roles, modules, templates, Vault, blocks, and the shell escape hatch. Ansible in context steps back to the decisions around the tool: practices, use cases, how it compares with the alternatives, and how it runs against AWS and inside GitHub Actions.

>>> Most of the blogs are still relevant today as they discuss the Ansible primitives but worth noting that Ansible has shifted from a monolithic package to a modular ecosystem split into ansible-core and independent Ansible Content Collections. This decoupling allows modules to update independently from the base engine.Architectural & Ecosystem ShiftsCollections: Modules and plugins are separated from the core runtime into independent namespaces. Fully Qualified Collection Names (FQCN): Short plugin names are deprecated in favor of explicit paths (e.g., ansible.builtin.template).Execution Environments: Container-based images package playbooks, dependencies, and collections for portable execution.

Start here

Day-2 techniques

Ansible in context

Browse all #ansible posts