I got tired of SSHing into servers one by one to run the same command. So I built something about it, and just shipped it as my first open source Python package. It's called sshrunner. You give it a list of servers, a command, and it runs everything in parallel over SSH. That's really it. No complicated setup. No agents. Just: pip install sshrunner It also handles jump hosts, saves per-host logs, and has an interactive mode where you type a command once and it broadcasts to every server at the same time. 👀 The CI setup was a rabbit hole of its own. I wanted real tests, not mocks, so I spun up 3 actual SSH containers with Docker Compose on every push. Turns out netcat will happily tell you a port is open before SSH is actually ready. The fix? Switch to ssh-keyscan and wait for the real banner. ✅ Small thing, took way too long to figure out 😅 Building it taught me a lot, paramiko internals, threading, packaging on PyPI, and more CI debugging than I'd like to admit. Still early, v0.1.2, lots on the roadmap. Would genuinely love feedback from anyone who does a lot of server wrangling. 👉 GitHub: https://lnkd.in/dHjXpCwJ 👉 PyPI: https://lnkd.in/dgG4mHQC #Python #OpenSource #DevOps #SSH #Automation #GitHubActions
Awesome stuffs, thing I love to see.
Ever Heard of Ansible? 😊This is a very nice minimal Version, btw. Great to know what is happening under the hood.
Try clustershell (clush). It is amazing
Nice work 👏🏻 I have built similar tool using shell scripting inorder to eliminate python package dependencies.
If the task is boring then automate it. My rule of thumb
Great job eya 👏
Is it better than parallel-ssh ? Also written in python