I went with Ansible way back when all these were fairly new, because it was not just possible, but considered "culturally", if you will, normal, in that ecosystem, to run it agentless. Having to run a config agent on the target system always felt like a smell, and begging for trouble.
But yaml's friggin' terrible, that's simply true.