This is a local action on the Tower host, yes? Tower is constricted with proot from executing outside a narrow range of directories. /tmp wouldn't be available. Tower also executes as the awx user locally and out of the box does not have sudo access at all.
So two things are preventing this playbook from running on your Tower host: 1) sudo to root on a local run and proot prevents execution outside the playbook directory locally.
I don't advise giving the awx user the ability to become root locally on Tower: that could lead to users running playbooks against localhost that could essentially do anything. Since you don't need root access to modify things in temp directories, I'd remove the "sudo: true line from your playbook.
As for the inability to execute outside your playbook directories (ie: manipulate files in /tmp) Tower is designed to control other hosts, but sometimes needs to access directories outside that playbook, so you can loosen these security restraints by changing the PROOT setting in /etc/tower/settings.py to "False" and restarting the Tower service:
vi /etc/tower/settings.py
change:
AWX_PROOT_ENABLED = True
to:
AWX_PROOT_ENABLED = False
then issue this command to restart the service (as root):
ansible-tower-service restart
Let us know if you have any questions.