There's pyinfra (https://pyinfra.com, full disclosure: I built it). Ansible, Salt have been mentioned already. Also CFEngine and Rudder might be worth a look.
I toyed with a simple puppet-alike, written in golang, called marionette (in hindsight a terrible name):
https://github.com/skx/marionette/
It isn't anywhere near as complex, or featureful, but starting with golden AMIs it allows the necessary changes that I need in a consistent fashion.
Well, yeah, especially as Puppet has a well known solution named Marionette Collective
* https://puppet.com/docs/mcollective/current/index.html * https://choria.io/docs/about/mcollective/
Thanks a lot for building this!