Inhaltsverzeichnis
ClusterSSH
ClusterSSH ist ein Werkzeug, welches z.B. shell
-Eingaben auf mehreren Servern gleichzeitig ermöglicht. Der cssh
Befehl öffnet eine administrative Konsole (shell
) und ein xterm
Fenster, für alle angegebenen Server. Jede Eingabe in die administrative Konsole wird ebenfalls in allen Fenster der angegebenen Servern ausgeführt. Alle Eingaben erfolgen gleichzeitig und in Echtzeit.
Voraussetzungen
Zur Installation von ClusterSSH unter dem Linux Betriebssystem CentOS in der Version 6, sollte das externe Repository EPEL genutzt werden.
Zur Einbindung des externen Repositories EPEL, aknn nachfolgender interne Link verwendet werden:
Installation
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Nach erfolgreicher Einbindung des externen Repositories EPEL, kann die Installation mit nachfolgendem Befehl durchgeführt werden:
# yum install clusterssh Loaded plugins: priorities, refresh-packagekit, security 78 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package clusterssh.noarch 0:3.28-2.el6 will be installed --> Processing Dependency: perl(Tk) >= 800.022 for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: xterm for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(X11::Protocol::Constants) for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(X11::Protocol) for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(X11::Keysyms) for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(Tk::Xlib) for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(Tk::ROText) for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(Tk::LabEntry) for package: clusterssh-3.28-2.el6.noarch --> Processing Dependency: perl(Tk::Dialog) for package: clusterssh-3.28-2.el6.noarch --> Running transaction check ---> Package perl-Tk.x86_64 0:804.028-12.el6 will be installed ---> Package perl-X11-Protocol.noarch 0:0.56-4.el6 will be installed ---> Package xterm.x86_64 0:253-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: clusterssh noarch 3.28-2.el6 epel 59 k Installing for dependencies: perl-Tk x86_64 804.028-12.el6 epel 2.2 M perl-X11-Protocol noarch 0.56-4.el6 epel 151 k xterm x86_64 253-1.el6 base 357 k Transaction Summary ================================================================================ Install 4 Package(s) Total download size: 2.8 M Installed size: 7.9 M Is this ok [y/N]: y Downloading Packages: (1/4): clusterssh-3.28-2.el6.noarch.rpm | 59 kB 00:00 (2/4): perl-Tk-804.028-12.el6.x86_64.rpm | 2.2 MB 00:00 (3/4): perl-X11-Protocol-0.56-4.el6.noarch.rpm | 151 kB 00:00 (4/4): xterm-253-1.el6.x86_64.rpm | 357 kB 00:00 -------------------------------------------------------------------------------- Total 8.7 MB/s | 2.8 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : xterm-253-1.el6.x86_64 1/4 Installing : perl-X11-Protocol-0.56-4.el6.noarch 2/4 Installing : perl-Tk-804.028-12.el6.x86_64 3/4 Installing : clusterssh-3.28-2.el6.noarch 4/4 Verifying : perl-Tk-804.028-12.el6.x86_64 1/4 Verifying : perl-X11-Protocol-0.56-4.el6.noarch 2/4 Verifying : xterm-253-1.el6.x86_64 3/4 Verifying : clusterssh-3.28-2.el6.noarch 4/4 Installed: clusterssh.noarch 0:3.28-2.el6 Dependency Installed: perl-Tk.x86_64 0:804.028-12.el6 perl-X11-Protocol.noarch 0:0.56-4.el6 xterm.x86_64 0:253-1.el6 Complete!
Der Inhalt des Paketes clusterssh.noarch
kann mit nachfolgendem Befehl angezeigt werden:
# rpm -qil clusterssh Name : clusterssh Relocations: (not relocatable) Version : 3.28 Vendor: Fedora Project Release : 2.el6 Build Date: Wed 18 Aug 2010 06:12:55 AM CEST Install Date: Wed 26 Jun 2013 09:06:22 AM CEST Build Host: x86-16.phx2.fedoraproject.org Group : Applications/Productivity Source RPM: clusterssh-3.28-2.el6.src.rpm Size : 138278 License: GPLv2+ Signature : RSA/8, Fri 20 Aug 2010 12:16:58 AM CEST, Key ID 3b49df2a0608b895 Packager : Fedora Project URL : http://clusterssh.sourceforge.net Summary : Secure concurrent multiple server terminal control Description : Control multiple terminals open on different servers to perform administration tasks, for example multiple hosts requiring the same configuration within a cluster. Not limited to use with clusters, however. /usr/bin/cssh /usr/share/applications/fedora-clusterssh.desktop /usr/share/doc/clusterssh-3.28 /usr/share/doc/clusterssh-3.28/AUTHORS /usr/share/doc/clusterssh-3.28/COPYING /usr/share/doc/clusterssh-3.28/ChangeLog /usr/share/doc/clusterssh-3.28/NEWS /usr/share/doc/clusterssh-3.28/README /usr/share/doc/clusterssh-3.28/THANKS /usr/share/icons/hicolor/24x24/apps/clusterssh.png /usr/share/icons/hicolor/32x32/apps/clusterssh.png /usr/share/icons/hicolor/48x48/apps/clusterssh.png /usr/share/man/man1/cssh.1.gz
Erster Start
ClusterSSH kann durch Auswahl des Menüeintrages im jeweiligen X-Fenster Manager gestartet werden, oder durch die Eingabe des nachfolgenden Befehls:
# clusterssh
Ohne die Angabe von zusätzlichen Parameter, startet nur die administrative Konsole (shell
), wie in nachfolgendem Bild dargestellt.
Anwendungsbeispiele
Nachfolgend sollen einige Anwendungsbeispiel für den Einsatz von
ClusterSSH gezeigt werden. Alle Aufrufe erfolgen über eine Konsole (shell
):
Aufruf, welcher zwei xterm
-Fenster/Server zeigt:
$ cssh klaus@localhost klaus@localhost
HINWEIS - Der Fokus/Cursor muss in der administrativen Konsole (shell
) sein, damit in beiden xterm
-Fenstern gleichzeitig Eingaben getätigt werden können!
Aufruf, welcher zwei xterm
-Fenster/Server zeigt, jedoch mit shell
-expansion Befehl:
$ cssh klaus@192.168.0.{1..2}
Aufruf welcher zwei xterm
-Fenster/Server zeigt, jedoch durch ein SSH-Gateway hindurch, inklusive zusätzlicher Optionen für die ssh
-Verbindung:
# cssh -o '-A -2 -t -Y' -a 'ssh -t -A -Y -2 -p 22 klaus@mx1.tachtler.net' klaus@192.168.0.1 klaus@192.168.0.1
Konfiguration
ClusterSSH bietet auch Konfigurationsmöglichkeiten. Nachfolgende Konfigurationsdateien können mit ClusterSSH genutzt werden:
/etc/clusters
/etc/csshrc
~/.csshrc
/etc/clusters
In der Konfigurationsdatei /etc/clusters
können mehrere vordefinierte Server(gruppen), zur einfachen Nutzung vordefiniert werden. Die Einstellungen sind global für alle Benutzer verwendbar.
Die Definition muss nach folgendem Muster erfolgen:
Global configuration file, sourced by all users. Can be generated by: <tag> [<username>@]hostname [...]
Beispiel:
# Meine Liste dnsserver klaus@192.168.0.20 klaus@192.168.0.10 webserver klaus@192.168.0.60 klaus@192.168.0.90
Neue Zeilen und Kommentare (jeweils beginnend mit dem Zeichen #) werden ignoriert!
HINWEIS - Diese Konfiguration kann ebenfalls Benutzerbezogen in der Konfigurationsdatei ~/.csshrc
vorgenommen werden.
/etc/csshrc
In der Konfigurationsdatei /etc/csshrc
können Einstellungen z.B. zum Verhalten und Aussehen der zu öffnenden xterm
-Fenster festgelegt werden. Die Einstellungen sind global für alle Benutzer verwendbar.
Die Konfigurationsdatei /etc/csshrc
, kann mit nachfolgendem Befehl erstellt werden:
# cssh -u > /etc/csshrc
~/.csshrc
In der Konfigurationsdatei ~/csshrc
können mehrere vordefinierte Server(gruppen), zur einfachen Nutzung vordefiniert werden, jedoch hauptsächlich werden die Einstellungen z.B. zum Verhalten und Aussehen der zu öffnenden xterm
-Fenster festgelegt werden. Die Einstellungen sind Benutzerbezogen.
Die Konfigurationsdatei ~/csshrc
, wird automatisch bei der ersten werdenwendung von ClusterSSH durch den jeweiligen Benutzer, mit Standardwerten angelegt.
Mit nachfolgen Befhel, kann die Die Konfigurationsdatei ~/csshrc
ausgegeben werden:
$ cat ~/.csshrc auto_quit=yes command= comms=ssh console_position= extra_cluster_file= history_height=10 history_width=40 key_addhost=Control-Shift-plus key_clientname=Alt-n key_history=Alt-h key_paste=Control-v key_quit=Control-q key_retilehosts=Alt-r max_addhost_menu_cluster_items=6 max_host_menu_items=30 menu_host_autotearoff=0 menu_send_autotearoff=0 method=ssh mouse_paste=Button-2 rsh_args= screen_reserve_bottom=60 screen_reserve_left=0 screen_reserve_right=0 screen_reserve_top=0 send_menu_xml_file=/home/klaus/.csshrc_send_menu show_history=0 ssh=/usr/bin/ssh ssh_args= -x -o ConnectTimeout=10 telnet_args= terminal=/usr/bin/xterm terminal_allow_send_events=-xrm '*.VT100.allowSendEvents:true' terminal_args= terminal_bg_style=dark terminal_colorize=1 terminal_decoration_height=10 terminal_decoration_width=8 terminal_font=6x13 terminal_reserve_bottom=0 terminal_reserve_left=5 terminal_reserve_right=0 terminal_reserve_top=5 terminal_size=80x24 terminal_title_opt=-T title=CSSH unmap_on_redraw=no use_hotkeys=yes window_tiling=yes window_tiling_direction=right
Für eine Übersicht der einzelnen Optionen, deren Einstellungsmöglichkeiten und Verwendung, kann nachfolgender Befehl verwendet werden:
# man cssh
HINWEIS - Sektion FILES beinhaltet die Einstellungsmöglichkeiten!
Anschließend meine persönlichen Einstellungen, bei Verwendung einer Bildschirmauflösung von 1280×1024 Pixel
$ cat ~/.csshrc auto_quit=yes command= comms=ssh console_position= extra_cluster_file= history_height=10 history_width=40 key_addhost=Control-Shift-plus key_clientname=Alt-n key_history=Alt-h key_paste=Control-v key_quit=Control-q key_retilehosts=Alt-r max_addhost_menu_cluster_items=6 max_host_menu_items=30 menu_host_autotearoff=0 menu_send_autotearoff=0 method=ssh mouse_paste=Button-2 rsh_args= screen_reserve_bottom=60 screen_reserve_left=0 screen_reserve_right=0 screen_reserve_top=0 send_menu_xml_file=/home/klaus/.csshrc_send_menu show_history=0 ssh=/usr/bin/ssh ssh_args= -x -o ConnectTimeout=10 telnet_args= terminal=/usr/bin/xterm terminal_allow_send_events=-xrm '*.VT100.allowSendEvents:true' terminal_args= # Tachtler # default: terminal_bg_style=dark terminal_bg_style=light # Tachtler # default: terminal_colorize=1 terminal_colorize=0 terminal_decoration_height=10 terminal_decoration_width=8 terminal_font=6x13 terminal_reserve_bottom=0 # Tachtler # default: terminal_reserve_left=5 terminal_reserve_left=0 terminal_reserve_right=0 # Tachtler # default: terminal_reserve_top=5 terminal_reserve_top=32 # Tachtler # default: terminal_size=80x24 terminal_size=216x24 terminal_title_opt=-T title=CSSH unmap_on_redraw=no use_hotkeys=yes window_tiling=yes window_tiling_direction=right