===== DSH =====
Before Ansible or Chef, Distributed Shell.
==== Debian ====
Thanks to the universal operating system to make it easy:
$ sudo apt-get install dsh
==== RHEL ====
Boo... compiling, I only can compilete correctly in RHEL/CentOS 5,6 and 7 the versiĆ³n 0.23.12 and libdshconfig-0.20.10.cvs.1:
$ sudo yum install gcc gcc-c++ make
$ wget https://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.23.12.tar.gz
$ wget https://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
$ tar -zxvf libdshconfig-0.20.10.cvs.1.tar.gz
$ cd libdshconfig-0.20.10.cvs.1
$ ./configure && make
$ sudo make install
$ cd ..
$ tar -zxvf dsh-0.23.12.tar.gz
$ cd dsh-0.23.12
$ ./configure && make
$ sudo make install
$ cd ..
==== RHEL tricky ====
$ sudo yum install gcc gcc-c++ make
$ wget https://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.10.tar.gz
$ wget https://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.13.tar.gz
$ tar -zxvf libdshconfig-0.20.13.tar.gz
$ cd libdshconfig-0.20.13
$ ./configure && make
$ sudo make install
$ cd ..
$ tar -zxvf dsh-0.25.10.tar.gz
$ cd dsh-0.25.10
$ ./configure && make
$ sudo make install
$ cd ..
You will receive a message similar to this:
dsh: error while loading shared libraries: libdshconfig.so.1: cannot open shared object file: No such file or directory
You need configure ssh as remote shell in file /usr/local/etc/dsh.conf
remoteshell =ssh
If you want parallel connections you must change:
waitshell=0
You can configure LD_PATH_LIBRARY to include /usr/local/lib. In my case I created a alias in $HOME/.bashrc file:
alias dsh='LD_LIBRARY_PATH=/usr/local/lib dsh'
==== References ====
* http://linux.ittoolbox.com/groups/technical-functional/redhat-l/dsh-setting-up-distributed-shell-for-rhel-5655947
* https://www.netfort.gr.jp/~dancer/software/downloads/#dsh