Recherche de site Web

Comment héberger plusieurs terminaux Linux pour la visualisation et la collaboration avec Wemux


Dans un article précédent, nous avons expliqué comment utiliser tmux, (Terminal MULTIpleXer), pour accéder et contrôler un certain nombre de terminaux (ou fenêtres) à partir d'un seul terminal.

Nous allons maintenant vous présenter wemux (une version multi-utilisateurs de tmux), qui inclut non seulement les fonctionnalités fournies par tmux, mais aussi permet aux utilisateurs d'héberger un environnement multiterminal auquel les clients peuvent se joindre en mode visualisation ou collaboratif.

En d'autres termes, vous pouvez héberger une session où d'autres personnes peuvent voir ce que vous faites dans le terminal (pour effectuer une démonstration, par exemple) ou collaborer avec eux.

Pour vous aider à tirer le meilleur parti de wemux, je vous recommande fortement de consulter le guide précédent sur tmux avant de parcourir le présent article.

Installation et configuration du terminal multi-utilisateur Wemux

Comme prérequis avant d'installer wemux, nous utiliserons git pour cloner le référentiel du projet dans notre système local. Si la commande suivante indique que git est introuvable sur votre système :

which git 

comme indiqué par :

/usr/bin/which: no git in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) 

Installez-le avant de continuer (utilisez yum ou aptitude selon votre distribution) :

yum install git       [On RedHat based systems] 
dnf install git       [On Fedora 22+ versions]
aptitude install git  [On Debian based systems]

Alors,

1. Clonez le référentiel distant.

git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux 

2. Créez un lien symbolique vers l'exécutable wemux dans /usr/local/bin ou dans un autre répertoire de votre ` PATH variable.

ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux 

3. Copiez l'exemple de fichier de configuration dans /usr/local/etc.

cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf 

Et insérez la ligne suivante :

host_list=(user1 user2 user3) 

user1, user2 et user3 sont les utilisateurs autorisés à démarrer des serveurs wemux. Vous pouvez ajouter autant d'utilisateurs que nécessaire, séparés par des espaces. Les autres utilisateurs pourront se connecter à un serveur wemux en cours d'exécution mais ne seront pas autorisés à en démarrer un.

Présentation du terminal multi-utilisateur wemux

Pour simplifier les choses, gardez à l'esprit que vous pouvez considérer wemux comme un outil qui facilite la visualisation de la console et la collaboration mutuelle sur la même session tmux.

Comme expliqué précédemment, dans le fichier de configuration (/usr/local/etc/wemux.conf), vous devez déjà avoir indiqué quels utilisateurs seront autorisés à démarrer un serveur wemux , ou en d'autres termes, une session tmux à laquelle d'autres utilisateurs pourront se connecter. Dans ce contexte, ces « utilisateurs » sont appelés clients.

Résumer:

  1. Serveur Wemux : une session tmux.
  2. Clients Wemux : utilisateurs rejoignant la session tmux décrite ci-dessus.

Voici les commandes utilisées pour gérer les serveurs wemux :

  1. wemux ou wemux start : démarre un nouveau serveur wemux (s'il n'en existe pas ; sinon en crée un nouveau) et crée un socket dans /tmp/wemux-wemux dont les autorisations doivent être définies sur 1777 pour que d'autres utilisateurs puissent s'y connecter ou s'y attacher :
  2. chmod 1777 /tmp/wemux-wemux 
    
  3. wemux attach vous connecte à un serveur wemux existant.
  4. wemux stop tue le serveur wemux et supprime le socket créé précédemment. Cette commande doit être exécutée à partir d’un terminal distinct. Alternativement, vous pouvez utiliser le shell de sortie intégré pour fermer les volets et éventuellement revenir à votre session shell habituelle.
  5. wemux kick username supprime l'utilisateur actuellement connecté via SSH à partir du serveur wemux et supprime ses sessions malveillantes (plus d'informations à ce sujet dans une minute). Cette commande nécessite que le serveur wemux ait été démarré en tant que root ou avec les privilèges sudo.
  6. wemux config ouvre le fichier de configuration dans l'éditeur de texte indiqué par la variable d'environnement $EDITOR (uniquement si une telle variable est configurée dans votre système, ce que vous pouvez vérifier avec echo $EDITOR ).

Toutes les commandes tmux répertoriées précédemment sont valides dans wemux, avec l'avantage que le client peut se connecter à un serveur wemux dans l'un des trois modes suivants. .

Pour ce faire, exécutez la commande trouvée dans la colonne COMMAND ci-dessous dans un « client potentiel », pour ainsi dire (il deviendra un client réel une fois qu'il aura rejoint le wemux serveur):

Mode Description Commands
Mirror Read-only, non-interactive wemux mirror
Pair Interactive, client shares cursor with the server wemux pair
Rogue Joins an existing session but allows the client to uses independent windows wemux rogue

Jetons un coup d'œil au screencast suivant pour une brève démonstration des trois modes client décrits dans le tableau ci-dessus (même ordre). Veuillez noter que j'ai utilisé Terminator afin de démarrer le serveur (en tant qu'utilisateur gacanepa) dans le volet de gauche et de connecter un client (en tant que test utilisateur) dans le volet de droite.

Ainsi, vous pouvez facilement voir comment fonctionne un serveur wemux tout en interagissant avec un client. En répétant le processus utilisé par un client pour rejoindre un serveur wemux, vous pouvez demander à plusieurs clients de faire la même chose simultanément.

Autres fonctionnalités du terminal wemux

Si les paragraphes ci-dessus ne vous ont pas donné suffisamment de raisons d’essayer wemux, nous espérons que les fonctionnalités suivantes vous convaincront.

Les utilisateurs autorisés à démarrer des serveurs wemux (conformément à la directive host_list dans le fichier /usr/local/etc/wemux.conf) peuvent héberger plusieurs sessions simultanément si la directive allow_server_change est définie sur true :

allow_server_change="true"

Pour démarrer deux sessions nommées la et emea, exécutez les commandes suivantes dans deux terminaux différents :

wemux join la && wemux start
wemux join emea && wemux start

Encore une fois, nous utiliserons Terminator pour afficher les deux terminaux en même temps (cela est similaire à ce à quoi vous pourriez vous attendre en passant à différentes consoles avec Ctrl+Alt+F1 via F7) :

Après avoir appuyé sur Entrée, les deux sessions démarrent séparément :

Ensuite, vous pouvez demander à un client de rejoindre l'une ou l'autre session avec :

wemux join la && wemux attach
Or
wemux join emea && wemux attach

Enfin, pour qu'un utilisateur distant (se connectant via SSH) démarre automatiquement sur wemux après la connexion et le déconnecte du serveur lorsqu'il se détache, ajoutez la strophe suivante à son fichier ~/.bash_profile :

wemux [mode]; exit

[mode] est l'un des modes client répertoriés précédemment.
Alternativement, un client peut passer d'un serveur à un autre en utilisant :

exit
wemux join [server name here] && wemux [mode]

Résumé

Dans cet article nous vous avons expliqué comment utiliser wemux pour mettre en place une visualisation à distance de votre terminal (et même une collaboration mutuelle) très facilement. Publié sous licence MIT, wemux est un logiciel open source et vous pouvez le personnaliser davantage en fonction de vos besoins.

Le code source se trouve dans wemux Github et disponible dans votre système dans /usr/local/bin/wemux. Dans le même référentiel Github, vous pouvez trouver plus d'informations sur ce programme.

Avez-vous trouvé cet article utile ? Faites-nous savoir ce que vous en pensez en utilisant le formulaire ci-dessous.