Part 3 — What Exactly Is Ansible?¶
Chapter status: outline
This chapter is scoped but not yet written in full prose. The sections below define what each part will cover.
Five words get thrown around interchangeably in job postings and blog posts: automation, orchestration, provisioning, configuration management, and deployment. This chapter defines each one precisely, then places Ansible on the map.
Why This Exists¶
- Without crisp definitions, later chapters about "Ansible vs. Terraform" or "Ansible vs. Kubernetes" collapse into vibes. This chapter gives the reader a vocabulary to reason precisely about tool choice.
Problem Statement¶
- The five terms, defined and contrasted with a concrete example each:
- Automation — replacing a manual human action with a script/tool (the broadest term; everything below is a kind of automation).
- Provisioning — creating the infrastructure itself (a VM, a VPC, a Kubernetes cluster) — the domain of Terraform/CloudFormation, though Ansible has provisioning modules too.
- Configuration management — bringing an existing machine to a desired state (packages installed, files templated, services running) — Ansible/Puppet/Chef's home turf.
- Orchestration — coordinating multiple systems/steps in a specific order, often across tools (deploy app → run migration → warm cache → flip load balancer) — Ansible playbooks do this at the task level; Kubernetes does it at the container-scheduling level.
- Deployment — shipping a specific application version to run — a specialized use of configuration management + orchestration together.
History / Context¶
- Why these lines have blurred over time: modern Ansible playbooks routinely do provisioning (
amazon.awsmodules), configuration management, orchestration, and deployment all in one run — which is exactly why beginners get confused about "what Ansible actually is."
Internal Architecture — A Venn/Comparison View¶
- A comparison table: Ansible / Terraform / Kubernetes / Jenkins mapped against automation, orchestration, provisioning, configuration management, deployment — showing where each tool is strong, weak, or "can technically do it but shouldn't."
Workflow¶
- A worked example: deploying a web app from bare cloud account to serving traffic, annotating each step with which of the five categories it falls under, and which tool a well-run team would use for it.
Production Best Practices¶
- "Use the tool that's strongest in the category you're solving for, and let them hand off to each other" — e.g., Terraform provisions, Ansible configures, and app-level CI/CD deploys — rather than forcing one tool to do everything.
Common Mistakes¶
- Using Ansible as a full provisioning replacement for Terraform on complex cloud topologies (possible, but loses Terraform's state-diffing and plan/apply safety net).
- Calling Ansible "just a deployment tool" and missing that configuration management is its actual core competency.
Performance Considerations¶
- N/A at the conceptual level — deferred to Volume 6.
Security Considerations¶
- N/A at the conceptual level — deferred to Volume 6.
Interview Questions¶
- "What's the difference between configuration management and orchestration?"
- "Where does Ansible sit relative to Terraform and Kubernetes?"
- "Give an example of a task that's provisioning vs. configuration management vs. deployment."
Hands-On Lab¶
- Take a real (short) playbook and label each task with which of the five categories it belongs to.
Summary¶
- Ansible is primarily a configuration management and orchestration tool that can also do light provisioning and deployment — knowing the boundaries is what separates "used Ansible once" from "understands automation architecture."
Next¶
Continue to Part 4 — Why YAML?.