Control Node vs. Managed Nodes¶
What You'll Learn¶
- What a control node is, and what it needs installed
- What a managed node is, and why its requirements are much lighter
- Which platforms can and can't act as a control node
Mental Model¶
Ansible has exactly two kinds of machine in any run:
flowchart LR
subgraph CN["Control Node"]
A[Ansible installed]
B[Python 3]
C[SSH client]
D[Your playbooks/inventory]
end
CN -- SSH --> M1[Managed Node 1]
CN -- SSH --> M2[Managed Node 2]
CN -- SSH --> M3[Managed Node 3]
- Control node — the machine you run
ansible-playbookfrom. This is the only machine that needs Ansible itself installed. - Managed node — anything Ansible connects to and configures. It needs an SSH server and (for most modules) a Python 3 interpreter — nothing Ansible-specific.
This asymmetry is the whole point of "agentless": you don't install or maintain anything on the 500 servers you manage, only on the one (or few) machines you run Ansible from.
Requirements, Precisely¶
| Control node | Managed node | |
|---|---|---|
| Ansible installed | Required | Not needed |
| Python | Required (runs Ansible itself) | Required for most modules (not for raw) |
| SSH | Client | Server (sshd) |
| OS | Linux or macOS | Linux, Unix, network device, or Windows (via WinRM) |
| Persistent process | None between runs | None — no daemon |
Windows cannot be a control node
Ansible does not run natively on Windows as a control node. Windows machines can be managed nodes (via WinRM + PowerShell), but to drive Ansible from a Windows machine you run it inside WSL (Windows Subsystem for Linux), which is really a Linux control node.
Common Mistakes¶
- Trying to install Ansible on every managed node "to be safe" — this defeats the agentless model and adds nothing; only the control node needs it.
- Assuming a managed node needs network access to the public internet — it only needs to be reachable from the control node over SSH (or WinRM), and vice versa.
- Forgetting that a bare cloud image or minimal container might not have Python 3 at all — covered in YAML → Python Mental Model and the
rawmodule comparison in command vs. shell vs. raw vs. script.
Interview Questions¶
- What does a managed node need installed for Ansible to configure it?
- Can Windows be an Ansible control node? A managed node?
- Why is the control/managed-node split described as "asymmetric"?
Next¶
Continue to Installing Ansible.