Back to Ansible

Strategy plugins

docs/docsite/rst/plugins/strategy.rst

2.21.0b32.2 KB
Original Source

.. _strategy_plugins:

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:

Enabling strategy plugins

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:

Using strategy plugins

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:

    • name: restart_tomcat service: name: tomcat state: restarted

.. _strategy_plugin_list:

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