I know that some of the advantages of Ansible over many other CMs are these:

  1. Ansible's scripts being written in YAML, a simple serialization language.
  2. The fact that one doesn't have to install it on the machines you deploy its commands/playbooks.
  3. Ansible's strong user base and community (for example, galaxy-roles)

I know there is another bold different, using the "push" method" instead of some other CMs using the "pull" method.

What is the difference here? Maybe it reflects difference 2?


In Ansible push mode, a centralized server connects to other target servers and runs a series of commands to set the target servers into a desired state. Because the centralized server can potentially serve hundreds or thousands of target systems, this can put quite a bit of load on the centralized system.

In pull mode, each system acts as its own server, allowing for greater scalability since no single server is forced to take on a high load of serving many target systems.

Ansible Pull Documentaion

  • +1. Wouldn't you say than then pull is always better than push? Like learning someone to grow their own vegetables instead giving them just vegetables? – JohnDoea Dec 27 '18 at 1:55
  • 1
    A pull model distributes the load, at the added cost of a small bit of configuration, resulting in scalable deployments. "Always" isn't an engineering term, there are too many tradeoffs to make. – stolenmoment Dec 27 '18 at 12:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.