Tous ceux qui ont déjà travaillé avec un cluster le savent bien. Il faut avec deux machines “strictement” identiques.
La meilleure solution est d’avoir une “console cluster”. Je n’ai jamais trouvé de solution réellement efficace et pratique à utiliser (la plus pratique celle de SUN).
Bref. En parallèle, je voulais regarder ce que Tmux avait dans le ventre pour remplacer Screen qui a fait son temps.
Et en pleine lecture de tmux: Productive Mouse-Free Development, je me rends compte qu’il est surement possible d’en faire une super console pour cluster.
Fichier “.tmux-clust.conf”
split-window -v -t clust 'ssh clust-root2'
set -g status-right ""
source-file ~/.tmux-clust-bc.conf
Fichier “.tmux-clust-bc.conf”
bind r source-file ~/.tmux-clust-nobc.conf \; display "Stop broadcast"
set -g status-bg green
set -g pane-active-border-fg green
unbind u
unbind i
unbind o
unbind p
bind u set-window-option synchronize-panes off \; send-keys -t clust:0.0 '1' \; send-keys -t clust:0.1 '2' \; set-window-option synchronize-panes on
bind i set-window-option synchronize-panes off \; send-keys -t clust:0.0 '2' \; send-keys -t clust:0.1 '1' \; set-window-option synchronize-panes on
bind o set-window-option synchronize-panes off \; send-keys -t clust:0.0 '192.168.21.' \; send-keys -t clust:0.1 '192.168.22.' \; set-window-option synchronize-panes on
bind p set-window-option synchronize-panes off \; send-keys -t clust:0.0 '192.168.22.' \; send-keys -t clust:0.1 '192.168.21.' \; set-window-option synchronize-panes on
Fichier “.tmux-clust-nobc.conf”
bind r source-file ~/.tmux-clust-bc.conf \; display "Now with broadcast"
set -g status-bg blue
set -g pane-active-border-fg blue
unbind u
unbind i
unbind o
unbind p
bind u send-keys -t clust:0.0 '1' \; send-keys -t clust:0.1 '2'
bind i send-keys -t clust:0.0 '2' \; send-keys -t clust:0.1 '1'
bind o send-keys -t clust:0.0 '192.168.21.' \; send-keys -t clust:0.1 '192.168.22.'
bind p send-keys -t clust:0.0 '192.168.22.' \; send-keys -t clust:0.1 '192.168.21.'
Et pour finir le fichier “tmux-clust”
tmux -f ~/.tmux-clust.conf attach
Du coup, quand je me connecte avec le script “tmux-clust”, il lance une connexion vers clust-root1 et clust-root2 chacun dans un panneau. Et par défaut, on est dans le mode “bc” pour broadcast.
Les touches :
- C-b u -> 1 -> node
- C-b i -> 2 -> other_node
- C-b o -> 192.168.21 -> node_addr_base
- C-b p -> 192.168.22 -> other_addr_base
- C-b r -> Change broadcast mode
“C-b r” permet de passer d’un “mode” à un autre :
- Vert “broadcast” on envoie la purée sur les deux machines en même temps
- Bleu mode normal C-b fléche pour passer de l’un à l’autre
Et voila, une console cluster en mieux :p

