Pesquisa de site

Como hospedar vários terminais Linux para visualização e colaboração com Wemux


Em um artigo anterior, explicamos como usar o tmux, (Terminal MUltipleXer), para acessar e controlar vários terminais (ou janelas) a partir de um único terminal.

Agora apresentaremos o wemux (uma versão multiusuário do tmux), que inclui não apenas os recursos fornecidos pelo tmux, mas também permite que os usuários hospedem um ambiente multiterminal onde os clientes podem ingressar no modo de visualização ou colaborativo.

Em outras palavras, você pode hospedar uma sessão onde outras pessoas possam ver o que você faz no terminal (para realizar uma demonstração, por exemplo) ou colaborar com elas.

Para ajudá-lo a aproveitar ao máximo o wemux, recomendo fortemente que você dê uma olhada no guia anterior sobre o tmux antes de ler este artigo.

Instalando e configurando o terminal multiusuário Wemux

Como pré-requisito antes de instalar o wemux, usaremos o git para clonar o repositório do projeto em nosso sistema local. Se o comando a seguir mostrar que git não foi encontrado em seu sistema:

which git 

conforme indicado por:

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

Instale-o antes de continuar (use yum ou aptitude dependendo da sua distribuição):

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

Então,

1. Clone o repositório remoto.

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

2. Crie um link simbólico para o executável wemux dentro de /usr/local/bin ou outro diretório em seu ` PATH variável.

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

3. Copie o arquivo de configuração de amostra em /usr/local/etc.

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

E insira a seguinte linha:

host_list=(user1 user2 user3) 

onde user1, user2 e user3 são usuários que têm permissão para iniciar servidores wemux. Você pode adicionar quantos usuários forem necessários separados por espaços. Outros usuários poderão se conectar a um servidor wemux em execução, mas não terão permissão para iniciar um.

Apresentando o terminal multiusuário wemux

Para simplificar as coisas, lembre-se de que você pode pensar no wemux como uma ferramenta que facilita a visualização do console e a colaboração mútua na mesma sessão do tmux.

Conforme explicado anteriormente, no arquivo de configuração (/usr/local/etc/wemux.conf), você já deve ter indicado quais usuários terão permissão para iniciar um servidor wemux , ou em outras palavras, uma sessão tmux à qual outros usuários poderão se conectar. Neste contexto, esses “usuários” são chamados de clientes.

Para resumir:

  1. Servidor Wemux: uma sessão tmux.
  2. Clientes Wemux: usuários ingressando na sessão tmux descrita acima.

Estes são os comandos usados para gerenciar servidores wemux:

  1. wemux ou wemux start: inicia um novo servidor wemux (se não existir; caso contrário, cria um novo) e cria um soquete em /tmp/wemux-wemux cujas permissões precisam ser definidas como 1777 para que outros usuários possam se conectar ou anexar a ele:
  2. chmod 1777 /tmp/wemux-wemux 
    
  3. wemux attachment conecta você a um servidor wemux existente.
  4. wemux stop mata o servidor wemux e remove o soquete criado anteriormente. Este comando precisa ser executado em um terminal separado. Alternativamente, você pode usar o shell de saída integrado para fechar painéis e, eventualmente, retornar à sua sessão normal do shell.
  5. nome de usuário wemux kick elimina o usuário atualmente conectado via SSH do servidor wemux e remove suas sessões não autorizadas (mais sobre isso em um minuto). Este comando requer que o servidor wemux tenha sido iniciado como root ou com privilégios sudo.
  6. wemux config abre o arquivo de configuração no editor de texto indicado pela variável de ambiente $EDITOR (somente se tal variável estiver configurada em seu sistema, o que você pode verificar com echo $EDITOR ).

Todos os comandos tmux listados anteriormente são válidos no wemux, com a vantagem de que o cliente pode se conectar a um servidor wemux em um dos três modos .

Para fazer isso, execute o comando encontrado na coluna COMMAND abaixo em um “cliente potencial“, por assim dizer (ele se tornará um cliente real assim que ingressar no wemux servidor):

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

Vamos dar uma olhada no screencast a seguir para uma breve demonstração dos três modos de cliente descritos na tabela acima (mesma ordem). Observe que usei o Terminator para iniciar o servidor (como usuário gacanepa) no painel esquerdo e conectar um cliente (como usuário de teste) no painel direito.

Assim, você pode ver facilmente como um servidor wemux funciona enquanto interage com um cliente. Ao repetir o processo usado por um cliente para ingressar em um servidor wemux, você pode fazer com que vários clientes façam o mesmo simultaneamente.

Outros recursos do Terminal wemux

Se os parágrafos acima não lhe deram motivos suficientes para experimentar o wemux, esperamos que os recursos a seguir o convençam.

Os usuários que têm permissão para iniciar servidores wemux (conforme a diretiva host_list no arquivo /usr/local/etc/wemux.conf) podem hospedar múltiplas sessões simultaneamente se a diretiva allow_server_change estiver definida como verdadeira:

allow_server_change="true"

Para iniciar duas sessões denominadas la e emea, execute os seguintes comandos em dois terminais diferentes:

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

Novamente, usaremos o Terminator para visualizar os dois terminais ao mesmo tempo (isto é semelhante ao que você poderia esperar ao mudar para consoles diferentes com Ctrl+Alt+F1 através F7):

Depois de pressionar Enter, ambas as sessões serão iniciadas separadamente:

Então você pode fazer com que um cliente participe de qualquer sessão com:

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

Finalmente, para que um usuário remoto (conectando via SSH) inicie automaticamente no wemux após o logon e desconecte-o do servidor quando ele for desconectado, anexe a seguinte estrofe ao seu arquivo ~/.bash_profile:

wemux [mode]; exit

onde [mode] é um dos modos de cliente listados anteriormente.
Alternativamente, um cliente pode mudar de um servidor para outro usando:

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

Resumo

Neste artigo explicamos como usar o wemux para configurar a visualização remota do seu terminal (e até mesmo a colaboração mútua) com muita facilidade. Sendo lançado sob a licença MIT, o wemux é um software de código aberto e você pode personalizá-lo ainda mais de acordo com suas necessidades.

O código fonte é encontrado no wemux Github e disponível em seu sistema em /usr/local/bin/wemux. No mesmo repositório Github você pode encontrar mais informações sobre este programa.

Você achou este artigo útil? Por favor, deixe-nos saber o que você pensa usando o formulário abaixo.