I have one task in my playbook that I want to run on only one host at a time. The rest of the tasks I want to honor the --forks option. Is this possible?
Yes checkout rolling updates
specifically you can add a "serial: x" parameter for a play where x is the number of forks