I wrote a simple tool, which is modeled after puppet in terms of syntax. It was mostly an experiment to see what minimum required features are enough to provide something useful - and I settled on a few primitives such as creating files, installing packages, and running commands.
Despite the minimalism it turned out to be more useful than expected:
I added extra things, such as the ability to pull docker containers, and clone git repositories, and despite being single-host I'm using it to setup several virtual machines.
(In the past I toyed with another project which used a combination of ssh+scp, also written in golang - https://github.com/skx/deployr )
Despite the minimalism it turned out to be more useful than expected:
https://github.com/skx/marionette/
I added extra things, such as the ability to pull docker containers, and clone git repositories, and despite being single-host I'm using it to setup several virtual machines.
(In the past I toyed with another project which used a combination of ssh+scp, also written in golang - https://github.com/skx/deployr )