06 – byobu

Bienvenidos a este quinto episodio de deployando.me, el podcast de tecnología para sysadmins y devops. Soy Rodolfo Pilas y estoy grabando el 5 de diciembre de 2016.

La semana pasada fue algo complicada para mi, por suerte puedo atribuirle la culpa al trabajo: finalicé el curso de Administrador Openstack que estaba dictando y he comenzado otro de Ingeniero Certificado RedHat Enterprise Linux.   Mis jornadas fueron largas y mis horas de descanso escasas.   Y así, uno de los que ha pagado las consecuencias ha sido el podcast que en esta edición se ha salteado una semana.

Pero acá estamos, con ganas de seguir compartiendo cosas.

¿y de qué vamos a hablar?

No, hoy no seguiré con cosas referidas a OpenSSH, voy a detener la serie y hablar de otra cosa, pero seguro la continuaré.

Hoy voy a hablar de otra herramienta que también ha modificado mi forma de trabajar con los servidores remotos, voy ha hablar de Byobu.

¿vieron esos biombos con dibujos de estilo oriental que suelen decorar los ambientes con onda japonesa?  Bueno, eso es un Byobu.

En sitio web de la herramienta Byobu se puede escuchar cómo lo dice Fumihito Yoshida, uno de los responsables de la versión en japonés de Ubuntu:

Byobu

Esuchemos de nuevo:

Byobu

Ahora que sabemos que Byobu es como llaman los japoneses al típico biombo, les cuento un poco mi historia con estas herramientas:

Muchas veces ha pasado de ingresar a servidores remotos y tener que lanzar tareas que demoran un rato considerable, pueden ser actualizaciones, instalaciones, respaldos o algún otro proceso y, si por algún motivo mi conexión se cierra, la tarea se interrumpe, generando desde la obvia pérdida de tiempo hasta posible corrupción de datos, según lo que se esté haciendo.

Por eso los sistemas Unix tienen el tradicional `nohup` para lanzar procesos que se despegan de la terminal y quedan corriendo independiente de mi conexión.

Pero sabemos que el `nohup` es bastante limitado, así que durante mucho tiempo utilicé la herramienta GNU/screen.  Screen presenta ventajas cualitativas sobre nohup, como ser:

  1. multiplexar la terminal, es decir, en una sola terminal abrir varias, una arriba de otra
  2. despegarse (desatacares) de screen en cualquier momento, dejándolo en ejecución, con todas sus instancias de terminal y sus programas corriendo, para eventualmente hacer otra cosa, abrir otro screen o directamente cerrar la conexión.
  3. la posibilidad de volver a pegarse a un screen en ejecución retomando las terminal en el punto donde haya avanzado la ejecución de sus programas o en el punto que la dejamos al despegarnos.

Luego de screen, mis procesos remotos que demoran algún tiempo, ahora pueden ser ejecutados tranquilamente, que si mi conexión se cierra, screen seguirá a cargo de ellos y yo me podré volver a conectar en cualquier momento tomando nuevamente control de las pantallas o terminales donde lo estaba ejecutando.

Y más recientemente conocí Byobu.

Byobu más que un multiplexador de terminal es un manejador de ventanas para la terminal, ofrece todas las características de `GNU/screen` pero con esteroides.

Para empezar Byobu invoca a tmux, que es otro muy buen multiplicador de terminal como screen (tengo varios conocidos que lo prefieren sobre screen).   Entonces Byobu lanza instancias de tmux y por arriba ofrece un administrador de toda esa multiplexación.

Entre las características de Byobu esta la posibilidad de manejar profiles, distintas teclas o confinaciones de teclas para las acciones (como lanzar nuevas terminales), una barra de estatus con notificaciones configurable y hasta un “huevo de pascua”.

De mi parte, fue amor a primera vista con Byobu, aunque los primeros pasos de nuestro idilio no fueron fáciles:

Sus configuraciones de teclas activas por defecto están bárbaras si utilizas una distribución de GNU/Linux, pero se dan de piñas si como yo tienes el terminal de MacOS.

Estaba apunto de seguir con mi amor a `screen` cuando veo un utilitario llamado `byobu-ctrl-a` que pasa todo el funcionamiento de teclas a formato de screen, o al formato de Emacs.

# byobu-ctrl-a
Configure Byobu's ctrl-a behavior...
When you press ctrl-a in Byobu, do you want it to operate in:
(1) Screen mode (GNU Screen's default escape sequence)
(2) Emacs mode  (go to beginning of line)

Entonces crear una nueva consola era como siempre lo había hecho con `Ctrl-a C`. Seguí investigando byobu y veo que puedo cortar la terminal verticalmente y horizontalmente, como puedo hacer con `vim`, teniendo distintos prompt en cada porción.

Y puedo cambiar el tamaño de cualquiera de ellas, aumentando su alto en vertical o su ancho en horizontal. O directamente hacer zoom-in sobre una de las ventanas y dejarla como si fuera una terminal independiente y volverla a su tamaño chico anterior con zoom-out.

Claro que siempre puedo despegarme de mi sesión byobu y cerrar la conexión o volver a pegarme y recuperar lo que había dejado corriendo, en el estado en el que avanzó mientras no estuve.

Con el comando `byobu-enable` puedo poner byobu como mi interfaz por defecto cuando ingreso al sistema y, si me despego automáticamente cierro mi conexión.

# byobu-enable
Activa Byobu para ser lo que se ejecuta luego de login
# byobu-disable
Desactiva Byobu del login

Esto lo he configurado por defecto en la mayoría de mi servidores GNU/Linux.  Si en alguno de ellos no deseo este comportamiento, con `byobu-disable` lo quito y ya no se iniciará automáticamente.

Byobu fue creado por Dustin Kirkland que es uno de los desarrolladores grossos de la distribución Ubuntu de GNU/Linux; no solo mantiene numerosos proyectos de software libre como byobu sino que además es responsable de la estrategia técnica de Ubuntu, su road map y ciclo de vida.

Byobu se licencia bajo GNU GPL, Version 3, por lo que puede ser estudiado su código, compartido y modificado como quieras ya que es un Software Libre.    Por eso Byobu está disponible en la mayoría de las distribuciones GNU/Linux como paquete nativo, la familia de los BSD y también MacOS.

Si ya usabas `screen` entonces Byobu te va a aportar una potencia de uso y flexibilidad que antes no tenías.  Si nunca probaste una herramienta de multiplicado de terminal, Byobu te va a poner rápido en la cima de las posibilidades.

En cualquier situación que estés, no dejes de mandarme tus comentarios sobre cuál es tu experiencia de uso.

Soy Rodolfo Pilas, en twitter me siguen por @pilasguru y les dejo un saludo a todos, confiando en que este podcast les haya aportado para mejorar y, como siempre, espero sus inquietudes y sugerencias comentando en deployando.me

Hasta la próxima edición.

Referencias