Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrewpillar/cl
Concurrently run commands across multiple servers via SSH
https://github.com/andrewpillar/cl
go ssh ssh-command
Last synced: 8 days ago
JSON representation
Concurrently run commands across multiple servers via SSH
- Host: GitHub
- URL: https://github.com/andrewpillar/cl
- Owner: andrewpillar
- License: mit
- Created: 2019-01-28T21:42:00.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-11T19:35:42.000Z (about 2 years ago)
- Last Synced: 2024-08-02T14:07:44.671Z (3 months ago)
- Topics: go, ssh, ssh-command
- Language: Go
- Size: 12.7 KB
- Stars: 46
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# cl
cl is a simple tool that allows you to run multiple commands concurrently
across a cluster of servers via SSH. It works by taking the name of the cluster
to run the command across, followed by the command to run like so.$ cl uat systemctl status postgresql
cl expects a `ClFile` to be in the current directory from where the
command is invoked. This is a plain-text file that describes the cluster, and
how they can be accessed via SSH.uat:
db@db-host-1 ~/.ssh/id_rsa
db@db-host-2 ~/.ssh/id_rsa
db@db-host-3 ~/.ssh/id_rsa## The ClFile
The `ClFile` expects the cluster of servers to be organised in the below format,
where the heading is the name that will be used via the command, and each
subsequent entry is the server to connect to.# Comment's are prefixed with '#'.
[name]:
[user]@[host]:[port] [identity]**[name]:**
A human readable string that specifies the alias for the cluster machines.
**[user]**
The user to connect to the machine as, if not specified then `$USER` will be
used instead.**[host]**
The host to connect to, this is always required.
**[port]**
The port to connect to on the machine, if not specified then `22` will be used
instead.**[identity]**
The identity file to use during SSH authentication, if not specified then
`~/.ssh/id_rsa` will be used by default.There is no limit to the number of clusters that can be specifed in the `ClFile`.
uat:
db@db-host-1 ~/.ssh/id_rsa
db@db-host-2 ~/.ssh/id_rsa
db@db-host-3 ~/.ssh/id_rsa
prod:
db@prod-db-host1:1234 ~/.ssh/id_prod_db
prod-db-host2:44
prod-db-host3 ~/.ssh/id_rsa