Cassandra/Tools/cdsh
Appearance
cdsh
is a simple wrapper for dsh
. It allows you to define a single hierarchical configuration for remote command execution, by cluster, data-center, and rack.
Project
Configuration
# Save as ~/.cdsh
# The restbase cluster (-c restbase)
restbase:
# Data-center 'eqiad' (-d eqiad)
eqiad:
# Rack a (-r a)
a:
- restbase1007.eqiad.wmnet
- restbase1010.eqiad.wmnet
- restbase1011.eqiad.wmnet
# Rack b (-r b)
b:
- restbase1003.eqiad.wmnet
- restbase1004.eqiad.wmnet
- restbase1008.eqiad.wmnet
# Rack d (-r d)
d:
- restbase1005.eqiad.wmnet
- restbase1006.eqiad.wmnet
- restbase1009.eqiad.wmnet
# Data-center 'codfw' (-d codfw)
codfw:
# Rack b (-r b)
b:
- restbase2001.codfw.wmnet
- restbase2002.codfw.wmnet
- restbase2007.codfw.wmnet
# Rack c (-r c)
c:
- restbase2003.codfw.wmnet
- restbase2004.codfw.wmnet
- restbase2008.codfw.wmnet
# Rack d (-r d)
d:
- restbase2005.codfw.wmnet
- restbase2006.codfw.wmnet
- restbase2009.codfw.wmnet
aqs:
datacenter1:
rack1:
- aqs1001.eqiad.wmnet
- aqs1002.eqiad.wmnet
- aqs1003.eqiad.wmnet
Usage
$ cdsh -h
usage: cdsh [-h] [-c CLUSTER] [-d DATA_CENTER] [-r RACK] [--config CONFIG]
[-P]
[args [args ...]]
A dsh wrapper for Cassandra
positional arguments:
args arguments to dsh
optional arguments:
-h, --help show this help message and exit
-c CLUSTER, --cluster CLUSTER
cluster name
-d DATA_CENTER, --data-center DATA_CENTER
data-center name
-r RACK, --rack RACK rack name
--config CONFIG yaml configuration file
Examples
Output kernel version for all machines in the restbase
cluster, eqiad
data-center, rack a
:
$ cdsh -c restbase -d eqiad -r a -- uname -r
restbase1007.eqiad.wmnet: 4.4.0-1-amd64
restbase1010.eqiad.wmnet: 4.4.0-1-amd64
restbase1011.eqiad.wmnet: 4.4.0-1-amd64
To print all of the hosts in the aqs
cluster:
$ cdsh -c aqs -P
aqs1001.eqiad.wmnet
aqs1002.eqiad.wmnet
aqs1003.eqiad.wmnet