docs/docsite/rst/plugins/strategy.rst
.. _strategy_plugins:
.. contents:: :local: :depth: 2
Strategy plugins control the flow of play execution by handling task and host scheduling. For more information on using strategy plugins and other ways to control execution order, see :ref:playbooks_strategies.
.. _enable_strategy:
All strategy plugins shipped with Ansible are enabled by default. You can enable a custom strategy plugin by
putting it in one of the lookup directory sources configured in :ref:ansible.cfg <ansible_configuration_settings>.
.. _using_strategy:
Only one strategy plugin can be used in a play, but you can use different ones for each play in a playbook or ansible run. By default, Ansible uses the :ref:linear <linear_strategy> plugin. You can change this default in Ansible :ref:configuration <ansible_configuration_settings> using an environment variable:
.. code-block:: shell
export ANSIBLE_STRATEGY=free
or in the ansible.cfg file:
.. code-block:: ini
[defaults]
strategy=linear
You can also specify the strategy plugin in the play with the :ref:strategy keyword <playbook_keywords> in a play:
.. code-block:: yaml
hosts: all strategy: debug tasks:
copy: src: myhosts dest: /etc/hosts notify: restart_tomcat
package: name: tomcat state: present
handlers:
.. _strategy_plugin_list:
You can use ansible-doc -t strategy -l to see the list of available plugins.
Use ansible-doc -t strategy <plugin name> to see plugin-specific documentation and examples.
.. seealso::
:ref:about_playbooks
An introduction to playbooks
:ref:inventory_plugins
Inventory plugins
:ref:callback_plugins
Callback plugins
:ref:filter_plugins
Filter plugins
:ref:test_plugins
Test plugins
:ref:lookup_plugins
Lookup plugins
:ref:Communication<communication>
Got questions? Need help? Want to share your ideas? Visit the Ansible communication guide