Newer CentOS including Amazon Linux appears to enable “Defaults requiretty” in sudoers. Here’s an evil workaround to disable it:
# This is evil, use "-t -t" to force tty to disable requiretty - local_action: command ssh -t -t ec2-user@{{inventory_hostname}} "sudo sed -i '/^Defaults requiretty/d' /etc/sudoers" sudo: false
Vagrant has this issue too – part of the build processes involves this step.