When is Ansible's shell module particularly appropriate?
shell
Only for adding hosts to an inventory file.
For every automation task, even when a purpose-built idempotent module exists.
Only for parsing YAML on the control node before a play begins.
When a task needs shell syntax such as pipelines or redirection and no more specific module fits.