Cómo crear un espacio de trabajo virtual de TI

Este artículo se basa en un capítulo de mi libro en línea gratuito, Resolviendo para la tecnología: cómo aprender rápidamente nuevas habilidades valiosas en un mundo tecnológico que cambia vertiginosamente. Hay mucho más de donde vino en mi sitio de Bootstrap IT, incluidos enlaces a mi libro, Linux in Action, y un curso híbrido llamado Linux in Motion que consta de más de dos horas de video y alrededor del 40% del texto de Linux en acción.

¿Alguna vez ha lavado completamente su estación de trabajo o computadora portátil principal mientras probaba una nueva tecnología? ¿O tiene tantos paquetes y sus dependencias instaladas que ya no tiene idea de qué es lo que hace que sus experimentos tengan éxito o fracasen?

La virtualización puede proporcionarle un entorno limpio, rápido y liviano donde puede probar el contenido de su corazón. Ni siquiera está restringido al sistema operativo que se ejecuta en su máquina host, por lo que también es una excelente manera de ver cómo funcionan las cosas en múltiples plataformas.

Cuando haya terminado, o si todo se derrumba en un glorioso fracaso, simplemente puede matar su entorno y encender uno nuevo para reemplazarlo. Ningún daño hecho.

En este artículo, exploraré VirtualBox y Linux Containers (LXC) como herramientas para proporcionar entornos de sistema operativo virtual fácilmente replicables y compartibles. Terminaré con algunas reflexiones sobre cómo escribir código y construir pilas de software directamente en entornos virtuales

VirtualBox

Diga "hola" al producto de hipervisor multiplataforma VirtualBox gratuito de Oracle y, en particular, a algunos trucos avanzados para obtener más valor de su inversión (sin costo). VirtualBox es algo que puede usar en cualquier sistema operativo para crear computadoras virtualizadas que ejecutan casi cualquier versión de Windows o Linux.

Todavía tiene que obtener una licencia para cualquier imagen de Windows que decida ejecutar, aunque generalmente es libre de instalar y usar copias sin activar la licencia durante aproximadamente un mes.

Si ya ha leído mi libro Linux in Action y parte de este material le resulta un poco familiar, es porque este capítulo es una versión reducida del capítulo 2 de Linux in Action. El contenido se ha puesto a disposición mediante el amable permiso de Manning Publications.

Comenzando con VirtualBox

VirtualBox proporciona un entorno en el que puede iniciar tantas computadoras virtuales como los recursos de su sistema físico puedan manejar. Y, por supuesto, es una herramienta particularmente útil para probar y aprender nuevas habilidades de administración de manera segura, que es nuestro objetivo principal en este momento.

Instalar VirtualBox

¿Quieres probar todo esto desde una PC con Windows? Dirígete al sitio web de VirtualBox y descarga el archivo ejecutable. Haga clic en el archivo que descargó y luego siga algunos pasos de configuración (todos los valores predeterminados deberían funcionar). Finalmente, se le preguntará si está de acuerdo con un posible restablecimiento de sus interfaces de red y luego si desea instalar VirtualBox. Por supuesto que lo eres y lo haces.

Conseguir que VirtualBox se instale correctamente en una máquina Ubuntu Linux es aún más simple. Solo dos comandos:

sudo apt update
sudo apt install virtualbox

Definiendo una máquina virtual

No estoy seguro de si alguna vez ha ensamblado una computadora física a partir de componentes, pero puede involucrarse. Definir una nueva máquina virtual dentro de VirtualBox funciona casi de la misma manera. La única diferencia significativa es que, en lugar de tener que ponerse de rodillas con una linterna apretada entre los dientes para agregar manualmente RAM y una unidad de almacenamiento a su caja, VirtualBox le permite definir las especificaciones de "hardware" de su VM haciendo clic en su ratón.

Después de hacer clic en Nuevo en la interfaz de VirtualBox, le dará a la VM que está a punto de construir un nombre descriptivo y, como puede ver en la figura, el software debería poder llenar correctamente los campos Tipo y Versión automáticamente. El tipo y la versión que seleccione aquí no instalarán un sistema operativo real, sino que simplemente se utilizan para aplicar la configuración de emulación de hardware adecuada.

El cuadro de diálogo Crear máquina virtual: VirtualBox intentará adivinar su sistema operativo y la versión del sistema operativo para ofrecer opciones inteligentes predeterminadas más adelante

En la siguiente pantalla, asignará RAM a su VM. A menos que esté planeando algo particularmente exigente, como alojar un enjambre de contenedores o ejecutar un servidor web ocupado, la cantidad predeterminada (768 MB) debería estar bien. Sin duda, puede darle más RAM si es necesario, pero no olvide dejar suficiente para su máquina host y cualquier otra máquina virtual que ya pueda vivir en ella. Entonces, si su host solo tiene 4 GB de RAM física, es probable que no quiera darle la mitad de eso a su VM.

Tenga en cuenta estos límites si finalmente decide ejecutar varias máquinas virtuales a la vez, algo que será útil para probar proyectos de infraestructura más complejos. Incluso si cada VM solo usa la cantidad predeterminada de memoria, dos o tres de ellas pueden comenzar a consumir la RAM necesaria para las operaciones normales del host.

Definiendo su disco duro virtual

¿Qué es una computadora sin disco duro? El proceso de configuración de VirtualBox ahora le preguntará si desea crear un nuevo disco virtual para su VM o utilizar uno que ya exista. Puede haber ocasiones en que desee compartir un solo disco entre dos máquinas virtuales, pero para este ejercicio supongo que querrá comenzar desde cero. Seleccione "Crear un disco duro virtual ahora".

La siguiente pantalla le permite elegir un formato de archivo de disco duro para el disco que está a punto de crear. A menos que esté planeando exportar el disco para usarlo en algún otro entorno de virtualización, el formato predeterminado de Imagen de disco de VirtualBox (VDI) funcionará bien.

Tampoco me he arrepentido de recurrir a la opción predeterminada "Asignado dinámicamente" para determinar cómo la unidad virtual consumirá espacio en el host. Por "dinámico" significan que el espacio en el disco de almacenamiento del host se asignará a la VM solo cuando sea necesario. Si el uso del disco VM sigue siendo bajo, se asignará menos espacio de host.

Un disco de tamaño fijo, por otro lado, recibirá su cantidad máxima de espacio de inmediato, independientemente de cuánto esté usando realmente. La única ventaja del "tamaño fijo" es el rendimiento de la aplicación, pero como generalmente solo uso máquinas virtuales VirtualBox para pruebas y experimentos, estoy bien evitando la compensación.

Cuando VirtualBox sabe que lo que buscas es Linux, y debido a que Linux hace un uso tan eficiente del espacio de almacenamiento, VirtualBox probablemente te ofrecerá solo 8 GB del tamaño total del disco en la siguiente pantalla (que se muestra a continuación). A menos que tenga planes inusualmente grandes para la máquina virtual (por ejemplo, va a trabajar con algunas operaciones serias de la base de datos), eso probablemente estará bien. Por otro lado, si hubiera elegido Windows como su sistema operativo, la opción predeterminada hubiera sido 25 GB, y por una buena razón: Windows no es tímido para exigir muchos recursos. Esa es una gran ilustración de una forma en que Linux es tan adecuado para entornos virtuales.

Si es necesario, su disco virtual puede ser tan grande como 2 TB, o el espacio libre máximo en el dispositivo host

También puede editar el nombre y la ubicación que VirtualBox usará para su disco en esta pantalla.

Cuando haya terminado, haga clic en Crear y la nueva máquina virtual aparecerá en la lista de máquinas virtuales en el lado izquierdo del administrador de VirtualBox. Disfruta el sabor del éxito, pero no has terminado: esa era solo la máquina. Ahora necesitará un sistema operativo para darle vida.

Descargar un sistema operativo

Ahora que ha definido el perfil de hardware virtual de su nueva VM, esto es lo que aún necesita hacer:

  • Descargue un archivo (en formato ISO) que contenga la imagen del sistema operativo que desea usar.
  • Inicie la nueva máquina virtual utilizando una unidad de DVD virtual que contenga el ISO que descargó
  • Trabajar a través del proceso de instalación estándar del sistema operativo
  • Inicie la máquina virtual e inicie el sistema operativo que acaba de instalar

Deberá descargar un archivo .ISO que contenga los archivos del sistema operativo y el programa de instalación. Encontrar el archivo correcto generalmente es solo una cuestión de buscar en Internet el nombre de distribución y la palabra "descargar". En el caso de Ubuntu, también puede ir a la página de ubuntu.com y hacer clic en la pestaña Descargas como se ve en la figura. Observe los diversos sabores de Ubuntu que están disponibles. Si va a utilizar esta VM para tareas de administración, entonces la versión pequeña y rápida del servidor es probablemente una mejor opción que Desktop.

El menú desplegable Descargas en la página de inicio de Ubuntu.com. Tenga en cuenta la gama de versiones que ofrece Ubuntu

Valide el archivo ISO que descargó

Los archivos grandes a veces pueden corromperse durante el proceso de descarga. Si incluso se ha cambiado un solo byte dentro de su .ISO, existe la posibilidad de que la instalación simplemente no funcione. Debido a que no desea invertir tiempo y energía solo para descubrir que hubo un problema con la descarga, siempre es una buena idea calcular de inmediato la suma de comprobación (o hash) para el .ISO que ha descargado para confirmar que todo está correcto como era.

Para hacer eso, deberá obtener la suma de verificación SHA o MD5 adecuada, que es una cadena larga que se parece a esto:

4375b73e3a1aa305a36320ffd7484682922262b3

En el caso de Ubuntu, obtener eso significará ir a la página web en releases.ubuntu.com, hacer clic en el directorio que coincida con la versión que descargó y luego hacer clic en uno de los enlaces a una suma de comprobación (como, por ejemplo, SHA1SUMS).

Debe comparar la cadena apropiada de esa página con los resultados de un comando ejecutado desde el mismo directorio que su .ISO descargado que podría verse así:

$ shasum ubuntu-16.04.2-server-amd64.iso

Si coinciden, estás en el negocio. Si no lo hacen, y has verificado dos veces para asegurarte de que estás buscando la versión correcta, entonces es posible que debas descargar el .ISO por segunda vez.

Instalar un sistema operativo

Una vez que su archivo .ISO esté en su lugar, regrese a VirtualBox. Con la VM que acaba de crear resaltada en el panel izquierdo, haga clic en el botón verde de Inicio en la parte superior de la aplicación. Se le pedirá que seleccione un archivo .ISO de su sistema de archivos para usarlo como una unidad de DVD virtual. Naturalmente, elegirás el que acabas de descargar. La nueva máquina virtual leerá este DVD e iniciará una instalación del sistema operativo.

La mayoría de las veces el proceso de instalación irá bien. Sin embargo, describir soluciones a cada una de las muchas cosas pequeñas que podrían salir mal requeriría una gran cantidad de artículos. Entonces, si tiene problemas, puede consultar la documentación y las guías que están disponibles para su sistema operativo o compartir su pregunta con la comunidad en línea.

Cuando todo esté bien instalado, aún podría haber algunas cosas más que resolver antes de que pueda arrancar con éxito en su VM. Con la entrada de tu VM resaltada, haz clic en el ícono de Configuración amarillo. Aquí es donde puedes jugar con el entorno y la configuración de hardware de tu VM.

Al hacer clic en Red, por ejemplo, le permite definir la conectividad de red. Si desea que su VM tenga acceso completo a Internet a través de la interfaz de red de la máquina host, entonces, como se muestra a continuación, puede seleccionar "Adaptador en puente" en el menú desplegable Adjunto, y luego el nombre del adaptador de su host.

La pestaña de red de la pantalla Configuración. Puede determinar qué tipo de interfaz de red, o interfaces, usar para su VM
El uso de un adaptador con puente no siempre es su primera opción, y a veces puede presentar un riesgo de seguridad. De hecho, elegir "NAT Network" es una forma más común de proporcionar una VM con acceso a internet. Sin embargo, una red puenteada es la forma más fácil de obtener conectividad de red completa, por lo que, al menos para probar, es un enfoque útil.

Estas siguientes secciones son un poco extra, pero ¿a quién no le gustan las cosas gratis? Le voy a contar dos trucos relacionados: cómo organizar sus máquinas virtuales de VirtualBox para hacer girar las nuevas lo más rápido posible y cómo usar la línea de comandos para compartir máquinas virtuales en una red.

Clonación de máquinas virtuales para comienzos rápidos

Una de las ventajas más obvias de trabajar con máquinas virtuales es la capacidad de acceder rápidamente a un entorno de SO nuevo y limpio. Pero si acceder a ese entorno requiere pasar por el proceso de instalación completo, entonces no veo mucho "rápidamente".

Hasta que, es decir, arrojas clonación a la mezcla. ¿Por qué no mantener su VM original en su estado limpio posterior a la instalación y simplemente crear un clon idéntico cuando quiera hacer un trabajo real?

Es fácil. Eche otro vistazo a la aplicación VirtualBox. Seleccione la máquina virtual (detenida) que desea usar como copia maestra, haga clic en el enlace del menú Máquina y luego en Clonar. Confirmará el nombre que le gustaría dar a su clon y luego, después de hacer clic en Siguiente, si desea crear un clon completo (lo que significa que se crearán copias de archivos completamente nuevas para la nueva VM) o clon vinculado (es decir, el nuevo VM compartirá todos los archivos base con su maestro, mientras mantiene su nuevo trabajo por separado).

Al seleccionar la opción Vinculada, irá mucho más rápido y ocupará mucho menos espacio en su disco duro. El único inconveniente es que no podrá mover este clon en particular a una computadora diferente más adelante. Es tu elección.

Ahora haga clic en Clonar y aparecerá una nueva VM en el panel de VM. Comience como normalmente lo haría y luego inicie sesión con las mismas credenciales que configuró en el maestro.

Administrar máquinas virtuales desde la línea de comandos

VirtualBox viene con su propio shell de línea de comando que se invoca usando vboxmanage. ¿Por qué molestarse con la línea de comando? Porque, entre otros beneficios, le permitirá trabajar en servidores remotos, lo que puede aumentar considerablemente el alcance de posibles proyectos. Para ver cómo funciona vboxmanage, use list vms para enumerar todas las máquinas virtuales actualmente disponibles en su sistema. Así es como se ve eso en mi máquina:

$ vboxmanage list vms
"Ubuntu-16.04-template" {c00d3b2b-6c77–4919–85e2–6f6f28c63d56}
"Centos-7-template" {e2613f6d-1d0d-489c-8d9f-21a36b2ed6e7}
"Kali-Linux-template" {b7a3aea2–0cfb-4763–9ca9–096f587b2b20}
"Sitio web-proyecto" {2387a5ab-a65e-4a1d-8e2c-25ee81bc7203}
"Ubuntu-16-lxd" {62bb89f8–7b45–4df6-a8ea-3d4265dfcc2f}

vboxmanage clonevm realizará el mismo tipo de acción de clonación que describí anteriormente usando la GUI. Aquí, estoy haciendo un clon de la VM Kali-Linux-template, nombrando la copia "newkali":

$ vboxmanage clonevm Kali-Linux-template --name newkali

Eso funcionará bien siempre que solo necesite usar la nueva VM aquí en mi computadora local. Pero supongamos que quiero que otros miembros de mi equipo tengan una copia exacta de esa VM, tal vez para que puedan probar algo en lo que he estado trabajando. Para eso, necesitaré convertir la VM a algún formato de archivo estandarizado. Así es como podría exportar una máquina virtual local a un archivo usando el formato de virtualización abierta (.OVA):

$ vboxmanage exportar sitio web-proyecto -o sitio web.ova
0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%
Exportado con éxito 1 máquina (s).

A continuación, deberá copiar el archivo .OVA en la computadora de su colega. Tenga en cuenta que el archivo, por cualquier estándar, no se considerará pequeño y delicado. Si no tiene suficiente ancho de banda de red para una transferencia de varios GB, considere moverlo a través de un dispositivo USB.

Una vez que se completa la transferencia, todo lo que queda es, desde la computadora remota, importar la VM a la VirtualBox de esa máquina. El comando es simple:

$ vboxmanage import docker.ova

Confirme que la operación de importación funcionó usando list vms e intente iniciar la VM desde el escritorio.

$ vboxmanage list vms
"Docker-project" {30ec7f7d-912b-40a9–8cc1-f9283f4edc61}

Si no necesita ningún acceso remoto sofisticado, también puede compartir una VM desde la GUI. Con la máquina que desea compartir resaltada, haga clic en el menú Archivo y luego en Exportar dispositivo.

Próximamente: el maravilloso y misterioso mundo de LXC.

VirtualBox es ideal para ejecutar operaciones que requieren acceso al kernel, para cuando necesita sesiones de escritorio GUI o para probar sistemas operativos de nicho de mercado. Pero si está en una máquina Linux y solo necesita acceso rápido a un entorno Linux limpio y no está buscando ninguna versión de lanzamiento especial, entonces será difícil vencer a los Contenedores Linux.

¿Qué tan rápido son los contenedores LXC? Lo verás por ti mismo muy pronto. Pero, debido a que comparten hábilmente muchos recursos del sistema tanto con el host como con otros contenedores, funcionan como servidores independientes de gran capacidad mientras usan solo un mínimo de espacio de almacenamiento y memoria.

NOTA: Vamos a analizar el clásico LXC, pero debe tener en cuenta que existe un entorno similar de los mismos desarrolladores llamado LXD. LXD es esencialmente una implementación más nueva de la interfaz LXC. Todavía usa LXC debajo del capó, pero proporciona un conjunto diferente de comandos que extienden la funcionalidad a la administración de red remota.

Comenzando con LXC

¿Instalar LXC en su estación de trabajo Ubuntu? Pedazo de pastel:

sudo apt update
sudo apt install lxc

Eso es. Estamos listos para ponernos manos a la obra. El conjunto básico de habilidades LXC es realmente bastante simple. Le mostraré los tres o cuatro comandos que necesitará para que todo funcione, y luego una sugerencia interna que, una vez que comprenda cómo se organiza LXC, lo dejará boquiabierto.

Lanza tu primer contenedor

¿Por qué no sumergirse y crear su primer contenedor? El valor dado a -senta el nombre que quiero usar para el contenedor, y -t le dice a LXC que construya el contenedor desde la plantilla de Ubuntu.

$ sudo lxc-create -n mycont -t ubuntu

Si decidió crear, por ejemplo, un contenedor CentOS, debe anotar las últimas líneas de la salida, ya que contiene información sobre la contraseña que debe usar para iniciar sesión:

$ sudo lxc-create -n centos_lxc -t centos
[...]
La contraseña raíz temporal se almacena en:
        '/ var / lib / lxc / centos_lxc / tmp_root_pass'

Iniciará sesión con el nombre de usuario "root" y la contraseña contenida en ese archivo. Si, por otro lado, su contenedor usó la plantilla de Ubuntu, entonces usará "ubuntu" para su nombre de usuario y contraseña. Naturalmente, si planea usar este contenedor para algo serio, querrá cambiar esa contraseña de inmediato.

Use lxc-ls --fancy para verificar el estado de su contenedor:

$ sudo lxc-ls - lujo
NOMBRE ESTADO AUTOSTART GRUPOS IPV4 IPV6
mycont DETENIDO 0 - - -

Bueno, existe, pero aparentemente necesita comenzar. Como antes, -n especifica por nombre el contenedor que desea iniciar. -d significa "separar", lo que significa que no desea que lo suelten automáticamente en una sesión interactiva cuando se inicia el contenedor.

$ sudo lxc-start -d -n mycont

Listar sus contenedores ahora debería mostrar algo como esto:

$ sudo lxc-ls - lujo
NOMBRE ESTADO AUTOSTART GRUPOS IPV4 IPV6
mycont EN EJECUCIÓN 0 - 10.0.3.142 -

Esta vez, el contenedor se está ejecutando y se le ha asignado una dirección IP. Puede usar esta dirección para iniciar sesión con una sesión de shell segura.

$ ssh ubuntu@10.0.3.142

Alternativamente, puede iniciar una sesión de shell raíz dentro de un contenedor en ejecución usando lxc-attach.

$ sudo lxc-attach -n mycont
root @ mycont: / #

Cuando hayas terminado de jugar con tu nuevo contenedor, puedes ejecutar exit para cerrar sesión dejando el contenedor en ejecución:

root @ mycont: / # salida
salida

... o apague el contenedor usando shutdown -h ahora.

Pero antes de hacerlo, descubramos cuán increíblemente rápidos son los contenedores LXC. La bandera que agregué al apagado justo antes significa "alto". Si usara enjuague, en lugar de cerrar para siempre, el contenedor se reiniciará. Así que ejecutemos el reinicio y luego intentemos iniciar sesión nuevamente de inmediato para ver cuánto tiempo tarda el contenedor en volver a ponerse de pie.

root @ mycont: / # shutdown -r ahora
sudo lxc-attach -n mycont

¿Cómo fue eso? Apuesto a que, cuando lograste volver a escribir el comando lxc-attach, mycont estaba despierto y listo para la acción. Pero, ¿sabía que presionar la tecla de flecha hacia arriba en Bash llenará la línea de comando con el comando anterior. Usar eso haría aún más rápido solicitar un inicio de sesión. En mi caso, no hubo un retraso notable. ¡El contenedor se apagó y se reinició por completo en menos de 2 segundos!

Los contenedores de Linux también son realmente fáciles para los recursos del sistema. A diferencia de mi experiencia con las máquinas virtuales VirtualBox, donde ejecutar tres al mismo tiempo ya comienza a afectar seriamente el rendimiento de mi estación de trabajo host de 8GB, puedo lanzar todo tipo de contenedores LXC sin sufrir ninguna ralentización.

Arreglando un contenedor frío LXC

¿Y qué hay de esa información privilegiada que te prometí? Bueno, de vuelta en una terminal en la máquina host (en lugar del contenedor), deberá abrir un shell de administrador con sudo su. De aquí en adelante, hasta que escriba exit, será sudo a tiempo completo.

$ sudo su
[sudo] contraseña para nombre de usuario:
# #

Ahora cambie el directorio a / var / lib / lxc / y enumere los contenidos. Debería ver un directorio con el nombre de su contenedor. Si tiene otros contenedores en el sistema, también tendrán sus propios directorios.

# cd / var / lib / lxc
# ls
mycont

Vaya a su directorio contenedor y enumere su contenido. Habrá un archivo llamado "config" y un directorio llamado "rootfs". La "fs" significa "sistema de archivos".

# cd mycont
# ls
config rootfs

Es el directorio rootfs que realmente quiero que veas ahora:

# cd rootfs
# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr

Todos esos subdirectorios que llenan rootfs ... ¿te resultan familiares? ¡Por supuesto! Todos son parte del Estándar de Jerarquía del Sistema de Archivos de Linux. Este es esencialmente el directorio raíz (/) del contenedor ... pero dentro del sistema de archivos del host. Siempre que tenga permisos de administrador en el host, podrá explorar esos directorios y editar los archivos que desee, incluso cuando el contenedor no se esté ejecutando.

Hay todo tipo de cosas que podrá hacer con este acceso, pero aquí hay una que puede salvar su vida (profesional) algún día. Supongamos que hace algo tonto en un contenedor y se bloquea, ahora no hay nada que le impida navegar a través del sistema de archivos, arreglar el archivo de configuración que echó a perder y volver al trabajo. Adelante: dime que no está bien.

¿Necesita montar un solo proceso en un contenedor detenido? Solo usa chroot de la manera que describo en este artículo.

Pero se pone mejor. Es cierto que el ecosistema de Docker ha ganado muchas capas de características y sofisticación desde que la tecnología salió de la sombra de LXC hace algunos años. Sin embargo, todavía está construido sobre un paradigma estructural básico que será instantáneamente reconocible para cualquiera que esté familiarizado con LXC.

Lo que significa que, si te inclinas a probar la tecnología de virtualización de más rápido crecimiento de la década, ya tienes skin en el juego.

Escribir código en un servidor remoto

Ahora que ya entendiste todas esas cosas del entorno virtual, ¿qué puedes hacer con ellas? Bueno, es obvio que tales configuraciones son perfectas para jugar con herramientas y arquitecturas del sistema.

Suponga que no le gustan las cosas del sistema, pero le gustaría un lugar seguro para crear aplicaciones. ¿Qué quiero decir con "seguro"? Estoy hablando de un entorno en el que puede instalar libremente bibliotecas y paquetes de dependencia sin tener que preocuparse por desestabilizar su computadora personal de trabajo.

Pero hay límites sobre qué tan lejos puede llevarte. Están sucediendo muchas cosas debajo de la superficie de IDEs como Eclipse o Visual Studio, y la gente se apega mucho a su conveniencia. Pero esperar poder ejecutar fácilmente todas esas capas de complejidad en una conexión remota, y especialmente en un servidor remoto sin cabeza, es quizás un poco ambicioso.

Pero aún así, ¿no sería bueno trabajar en el IDE en su computadora portátil y guardar el código, compilarlo y ejecutarlo de forma remota ... por ejemplo, en una máquina virtual alojada o una instancia en la nube? De esa manera, podría construir sus aplicaciones en los servidores donde realmente se ejecutarán sin tener que arriesgar la estabilidad de su propia estación de trabajo.

Se puede hacer. En general, el truco es lograr que su IDE se ejecute sobre una sesión de Secure Shell (SSH). Para más detalles, busque en Internet algo como "eclipse edit java code on remote server".

Este artículo se basa en un capítulo de mi libro en línea gratuito, Resolviendo para la tecnología: cómo aprender rápidamente nuevas habilidades valiosas en un mundo tecnológico que cambia vertiginosamente. Hay mucho más de donde vino en mi sitio de Bootstrap IT, incluidos enlaces a mi libro, Linux in Action, y un curso híbrido llamado Linux in Motion que consta de más de dos horas de video y alrededor del 40% del texto de Linux en acción.