Steven's Knowledge

Ansible

Agentless configuration management and application deployment - from your first playbook to production-grade automation

Ansible

Ansible is an open-source automation tool from Red Hat. You describe the desired state of your machines in YAML playbooks, and Ansible SSHes into them and runs the tasks needed to get there.

Why Ansible

Without AnsibleWith Ansible
Manual ssh + shell scriptsOne playbook describes the whole fleet
Snowflake serversIdempotent runs converge every host to the same state
Custom agents on every boxAgentless — just needs SSH + Python
Drift hard to spotRe-run a playbook to see (or fix) drift

The Core Loop

write YAML  →  ansible-playbook --check --diff  →  review  →  ansible-playbook

                                                            SSH into hosts,
                                                            run tasks

Idempotency is the key property: every task is written so it does nothing if the target is already in the right state. A second run on a converged fleet is a no-op.

Learning Path

Read in this order if you're new — each page builds on the previous one.

Ansible vs. Alternatives

ToolArchitectureApproachWhen to choose
AnsibleAgentless (SSH)Procedural YAMLMost teams, mixed fleets, no agent install
ChefAgent (chef-client)Ruby DSLExisting Chef shops, complex config
PuppetAgent (puppet-agent)Declarative DSLLarge enterprise, strong type model
SaltAgent or agentlessYAML + PythonNeed real-time event-driven automation

Ansible and Terraform solve different problems. Use Terraform to provision infrastructure (VMs, networks, DBs), and Ansible to configure what runs on it (packages, users, app deploys). They compose well — Terraform creates the box, Ansible configures it.

On this page