Imporved ClusterSSH for modern terminals like terminator and tilix, to manage a cluster of nodes through ssh connections launches multiple splits with ssh connections to each node
This project was created in a single Hackathon, so still have a long run to be beta quality. Any help is appreciated:
- Add command line arguments to create/remove/modify cluster so there is no need to edit json files
- Improve
guess
terminal detection for other DE (KDE and XFCE at least) - Add more backends
- Make it compatible with other platforms (at least OS X)
- Improve terminator code to use tempfile instead of creating a profile inside terminator
- Write automated unit tests
- Improve overall code quality
If you are a previous csshnator user, you can migrate your old configuration with migrate_settings_from_csshnator.py
script, just run it to get your cluster settings migrated
To install you need to have Python 3
(tested with 3.6
but might work with older versions) and pip
. Then you just need to:
pip install csshy
To use it, just pass all hostnames as arguments on command line, like that:
csshy -l user host1 host2 host3
You can also create a config file with all the clusters listed in a json format, and also adjust your default terminal: $HOME/.csshy.conf
{
"terminal": "guess",
"cluster_nodes": {
"cluster1": [
"10.10.100.209",
"10.10.100.210",
"10.10.100.211"
],
"cluster2": [
"10.10.100.212",
"10.10.100.213",
"10.10.100.214"
]
}
}
In terminal
you can choose between guess
, terminator
, tilix
and cssh
. When you choose guess
csshy will try it best to guess wich terminal to use.
To use the cluster you created just pass the -c
argument
csshy -l <user> -c <clustername>
example:
csshy -l thor27 -c cluster1
For more usage information you can consult the help:
./csshy --help
usage: csshy.py [-h] [-l LOGIN] [-s] [-c CLUSTER_NAME] [-t TERMINAL]
[cluster_nodes [cluster_nodes ...]]
Open ClusterSSH-like session on Terminator or Tilix
positional arguments:
cluster_nodes Hostnames or user@hostname to connect to, separated by
space
optional arguments:
-h, --help show this help message and exit
-l LOGIN, --login LOGIN
Login username to pass to all hosts used.
-s, --show Show all clusters available.
-c CLUSTER_NAME, --cluster-name CLUSTER_NAME
Cluster name is a collection of hosts available on
~/.csshy.conf file
-t TERMINAL, --terminal TERMINAL
Choose terminal to use (tilix, terminator, cssh)