Shell Plugins

Shell plugins work to ensure that the basic commands Ansible runs are properly formatted to work with the target machine and allow the user to configure certain behaviours related to how Ansible executes tasks.

Enabling Shell Plugins

You can add a custom shell plugin by dropping it into a shell_plugins directory adjacent to your play, inside a role, or by putting it in one of the shell plugin directory sources configured in ansible.cfg.


You should not alter which plugin is used unless you have a setup in which the default /bin/sh is not a POSIX compatible shell or is not availble for execution.

Using Shell Plugins

In addition to the default configuration settings in ../config, you can use a ‘connection variable’ ansible_shell_type to select the plugin to use. In this case, you will also want to update the ansible_executable to match.

You can further control the settings for each plugin via other configuration options detailed in the plugin themsleves (linked below).

See also

Working With Playbooks
An introduction to playbooks
Inventory Plugins
Ansible inventory plugins
Callback Plugins
Ansible callback plugins
Jinja2 filter plugins
Jinja2 test plugins
Jinja2 lookup plugins
User Mailing List
Have a question? Stop by the google group!
#ansible IRC chat channel