As Chief Architect of a Red Hat Premier Partner which is deeply specialized in all things infra automation, one of the first things I often see people being surprised about when they’re new to Red Hat Ansible, is how much its core design truly is “addition by subtraction”.
Meaning:
- Ansible is agentless.
- Ansible is human-readable.
- Ansible is declarative and doesn’t change anything it doesn’t have to.
Ansible being agentless is big upgrade vs. earlier ideas like Puppet and Chef.
- Nothing to install remotely now or update later. If you can connect, login and find a python interpreter (or Powershell exe, if you’re into Windows), Ansible just works.
- Also means Ansible can automate what others can’t. Linux, Windows, networking, appliances, cloud, bare metal.
In terms of readability, an Ansible playbook’s YAML syntax is easier on the eyes than the Ruby-based DSL’s of Chef & Puppet.
It’s not all about the line count. One of these is more readable & instantly adaptable than the others. (And Ansible offers a simplified yet modular file layout as well.)
Ansible’s declarative/idempotent design means it’s predictable, consistent, and it won’t undo things just to redo things on managed nodes.
Even simple command/shell script tasks can be easily guardrailed to not run twice.
And by “keeping simple things simple while also making complex things possible”, Ansible meets you wherever you are, on Day 1 and Day 1,000.