The error handling of Go seems like it would be source of distraction in this.
Configuration management tools which are themselves configured via declarative means are, while cumbersome at times, still a step up compared to “just provision servers” libraries that manage to somehow shamble along without an I/O system or a strong type system or referential transparency.
In IRC someone suggested using Fabric. Which would work! And allows you to write code. But also has a lot more limited feature set (I believe) vs something like Ansible, and still establishes one SSH connection per command.