Show HN: A simple Go utility to ease deployments via SSH and SCP
github.com
github.com
I believe that we are getting to a point where config management might as well be in a programming language instead of a bunch of ad-hoc scripts in templates that defer to dynamic language scripts and become a mess.
0 - https://github.com/cretz/systrument 1 - https://github.com/cretz/software-ideas/issues/1
Just FYI, SFTP is an OK protocol hampered by really poor implementations. Daniel Stenberg (author of `curl`) has a really good write-up about why this is the case.[1] -- What it boils down to is SFTP is "chunk" oriented, not file oriented, and most implementations wait for an acknowledgement of each chunk before fetching the next one. The end result is you're artificially band-limited by your latency to the remote host. -- If an implementation (like libssh2) in-flights many chunks at once SFTP can go much faster.
Sadly a lot of SFTP clients don't seem to have gotten the memo.
[1]: https://daniel.haxx.se/blog/2010/12/08/making-sftp-transfers...
That's the idea behind my brainchild, judo[1].
Those are things I deliberately left out, but I could be open to persuasion if the expression was natural.
This application only allows two things:
* Uploading a file, or series of files. * Running a command, or series of commands.
In short I'm very simple. But because of that it avoids some of the horrors of trying to be overly-complex in the way that Ansible is. It avoids cryptic failures, and the horrible "language" for looping constructs, etc.
I could imagine adding support for cron, mysql, etc, but I think as soon as you allow real conditional actions to such utilities it becomes a mess to use.
I always think it’s interesting to see things pop up on HN that are randomly relevant to things I’m thinking about or working on.
In the readme (first section) you use, as an example, the command:
"Run adduser bob 2>/dev/null"
why do you add the "2>/dev/null" part? I see a lot of tutorial/guide/example/etc... do that! I understand what it does (send the stderr to devnull) but i don't understand why would i want to do that?
Not a bad idea, but I guess I'd need to think about it. Mostly the "large" files I pull from github, or distribution sites. I tend to only upload some simple config-files, and systemd-service units. So the extra overhead of SCP isn't so significant.
But you don't need Ruby installed?