- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# Strategy Plugins

- Enabling strategy plugins
- Using strategy plugins
- Plugin list

Strategy plugins control the flow of play execution by handling task and host scheduling.

## 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 ansible.cfg.

## 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. The default is the linear plugin. You can change this default in Ansible configuration using an environment variable:

    export ANSIBLE_STRATEGY=free

or in the ansible.cfg file:

    [defaults]
    strategy=linear

You can also specify the strategy plugin in the play via the strategy keyword in a play:

    - 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

## 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 specific documentation and examples.

- debug – Executes tasks in interactive debug session
- free – Executes tasks without waiting for all hosts
- host_pinned – Executes tasks on each host without interruption
- linear – Executes tasks in a linear fashion

See also

About Playbooks
  An introduction to playbooks
Inventory Plugins
  Ansible inventory plugins
Callback Plugins
  Ansible callback plugins
Filters
  Jinja2 filter plugins
Tests
  Jinja2 test plugins
Lookups
  Jinja2 lookup plugins
User Mailing List
  Have a question? Stop by the google group!
irc.freenode.net
  #ansible IRC chat channel