top of page
Writer's pictureSiddhesh Kadam

Ansible Strategy


Ansible Strategy

In Ansible, the term "strategy" refers to the mechanism or approach used to execute tasks across multiple hosts. Ansible provides different strategies, allowing users to choose the most suitable one based on their infrastructure and requirements. The choice of strategy can significantly impact the performance and efficiency of Ansible playbooks. Here are the primary strategies available in Ansible.


1.Linear Strategy.


The linear strategy is the default strategy in Ansible. In this approach, tasks are executed sequentially, one host at a time. Ansible completes all tasks for one host before moving on to the next.

[defaults]
strategy = linear

This strategy is straightforward and easy to understand but may not utilize the full potential of concurrency, especially in large environments.


2.Free Strategy.


The free strategy allows tasks to be executed in parallel across all hosts. It optimizes concurrency by running as many tasks as possible simultaneously.

[defaults]
strategy = free

This strategy is useful for maximizing performance, especially in environments with a large number of hosts. It helps to make better use of available resources and reduce overall execution time.


3.Mitogen Strategy.


The Mitogen strategy leverages the Mitogen project, which is a Python library for transparently executing tasks in parallel across multiple hosts. It provides efficient communication between Ansible control machine and managed hosts.

[defaults]
strategy = mitogen

Mitogen is known for its high performance and reduced overhead compared to traditional strategies. It is particularly useful for large-scale environments and can significantly improve execution speed.


Choosing a Correct Strategy =>


The choice of strategy depends on various factors, including the size of the infrastructure, available resources, and the nature of tasks being executed. Here are some considerations for choosing a strategy:


1.Linear Strategy:

  • Suitable for small to medium-sized environments with fewer hosts and simpler task dependencies.

  • When task order is crucial, and tasks must be executed sequentially.


2.Free Strategy:

  • Ideal for large environments with many hosts where maximizing concurrency is essential.

  • When tasks are independent and can be executed simultaneously without specific order requirements.


3.Mitogen Strategy:

  • Recommended for large-scale environments where performance optimization is a priority.

  • When there is a need for efficient communication between the control machine and managed hosts.

Configuring Strategy:


The strategy can be configured in the Ansible configuration file (/etc/ansible/ansible.cfg). Add the following section to set the strategy:

[defaults]
strategy = <strategy>

Replace <strategy> with either linear, free, or mitogen.


1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Guest
Apr 04
Rated 5 out of 5 stars.

Very precisely explained

Like
bottom of page