Manage node configurations with Go and ssh.
I’m now running four nodes with Nomad+IO installed. I’d like to have a way to check on them and to remotely and automatically update them with simple things like nomad job restart io
to update their IOs to the latest version.
agentio/fleet is a private repo containing a very minimal start at a tool that uses SSH to run commands on remote systems. Originally I wrote a bash script, but quickly decided that bash idiosynracies and limitations made it worthwhile to just do this with Go, which has a nice SSH standard library component. This stackoverflow answer sealed the plan.
Pros#
- Minimal dependencies.
- Builds directly on Go’s ssh support, which aligns with IO’s ssh usage.
Cons#
- Nobody will know this (but it should be easy for Go users to pick up).
- Ansible, etc. exist for system configuration but do MUCH more than I need.
- There might be some direct Nomad features that I could use instead.