I've seen so many times that other tools like ansible, saltstack, etc, perform really well and give in-depth information. To any engineer (devops, IT, software) would be extremely useful. But the common complaints I have heard (and seen it for myself), was the speed at which it does its job. I took it upon myself to learn Go and create an useful tool to (hopefully) replace those others, as there are only 4 commonly used tools out there (Ansible, Saltstack, Chef and Puppet) and got tired of the vendor lock-in, with a slow performing tool. Or one that is rediculously complex to configure.
So I went with the K.I.S.S. method, and keep the complexity in the code, not the tool. And boost the performance with a modern language.
(████████████████████) 100.0% 6.2 ops/s
22/22 Succeeded
real 0m3.775s
user 0m0.061s
sys 0m0.031s
(████████████████████) 100.0% 6.7 ops/s
24/24 Succeeded
real 0m3.468s
user 0m0.430s
sys 0m0.066s
(████████████████████) 100.0% 172.5 ops/s
75/75 Succeeded
real 0m0.455s
user 0m0.479s
sys 0m0.219s
Command run:
> GoSSH.exe all hostname
and
> GoSSH all hostname
And to my surprise, this tool outperformed saltstack (probably Ansible too). I would love to get benchmarks for the other tools. Saltstack took around 3.4 seconds
to execute the same command (hostname
) on the same set of servers. I wish I could test this in a bigger environment, as the one I tested it on, was the
pre-production servers I was allowed to test it on.
Logs will be written to ./logs/*
in their individual directories (/errors
and /output
) in the same directory as where the application is used.
Make sure the pool.yml file is in ./config
and saved as pool.yml
(please use the config file in this repo as a template)
GoSSH [ option ] [ subcommand ] [ command ]
Options:
Subcommand:
*The known_hosts file is causing some issues (issue open for it). Ignoring known_hosts for now.