Microsoft ya tiene su propia distribución de Linux llamada Mariner

Standard

Los creadores del WSL (Windows Subsystem for Linux) y WSL2, ahora han liberado una nueva distribución Linux muy básica llamada CBL-Mariner en el sitio web de Microsoft en Github. Las siglas CBL significan Common Base Linux.

Esta distribución está orientada a servidores (no incluye una GUI para Desktop), es evidente que la intención de Microsoft es que utilicemos esta nueva distribución en su servicio de nube Azure.

La distribución es bastante ligera y tenemos todo su código fuente disponible en Github, pero no un ISO. Este debe ser creado partiendo de un Ubuntu 18.04 y una lista de pre-requisitos.

Para aquellos que sólo deseen probar la distro, pueden descargar la imagen .iso que he generado desde este link de Mega.

Los que deseen saber como se generó esta imagen, aquí les detallo los pasos:

Primero debemos instalar un Ubuntu 18.04 en nuestro sistema Windows 10, para ello sólo debemos activar el WSL2 y descargar desde Microsoft Store el Ubuntu 18.04.

Luego de instalada el Ubuntu 18.04 debemos asegurarnos de que tenemos instalado la última versión de todos los paquetes con estos comandos:

sudo apt-get update
sudo apt-get -y upgrade

Una vez actualizado nuestro Ubuntu 18.04 debemos instalar todos los pre-requisitos que necesita la creación del ISO, para ello debemos ejecutar todos estos comandos, puede sencillamente copiar/pegar en la terminal del Ubuntu 18.04:

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt -y install make tar wget curl rpm qemu-utils golang-1.15-go genisoimage python-minimal bison gawk parted
sudo apt -y install pigz
sudo ln -vsf /usr/lib/go-1.15/bin/go /usr/bin/go
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

Una vez que hemos terminado con los pre-requisitos, debemos ir a nuestro directorio home, si es que no estamos allí, clonar el directorio desde Github e iniciar el procedimiento de la creación del ISO:

cd $HOME
git clone https://github.com/microsoft/CBL-Mariner.git
cd CBL-Mariner/toolkit
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json

Este proceso tomará unos minutos, sea paciente. Una vez finalizado debe ver algo como esto:

Recuerde que Ud. ha generado el ISO dentro del sistema Linux, para poder copiar/pegar la imagen iso y llevarla a un directorio Windows, abra el Windows File Explorer y tipee en la barra de direcciones \wsl$

Una vez hecho eso debe ver que el File Explorer le ofrece todos los directorio del WSL:

Entre al folder Ubuntu-18.04, busque el directorio home que creo durante la configuración del WSL y en el subfolder CBL-Mariner/out/images/full encontrará la imagen iso que generó siguiendo los pasos anteriores.

Luego de copiar/pegar a otro directorio de Windows puede usarla para crear una máquina virtual, ya sea con VirtualBox, Hyper-V o VMWare Workstation.

En mi caso he creado una máquina virtual en VMWare Workstation, para poder usar el disco creado en formato vmdk en DigitalOcean.

La configuración que he usado es un core, 2 GB de RAM y 25 GB de espacio en disco en un sólo volumen como se muestra a continuación:

Una vez arrancado el virtual, nos ofrece hacer una instalación en modo texto con ayudante de voz, en modo texto puro o en modo gráfico. En mi caso opté por la instalación en modo gráfico.

La primera pantalla de la instación en modo gráfico es esta:

Y podemos elegir entre una instalación básica (Core) o una instalación completa (Full), en mi caso opté por la instalación completa para ver que nos ofrece.

Luego de haber seleccionado el tipo de instalación, Mariner nos pide que aceptemos los términos de licencia del producto:

Sobra decir que si no aceptamos, no podremos continuar con la instalación.

Luego nos ofrece la opción de personalizar el particinamiento del disco, o dejar la opcion por defecto que es lo que hice:

Luego de terminado el particionamiento, debemos proveer un nombre de usuario y password, como es común en la mayor parte de distribuciones Linux:

Completado el paso anterior, nos pregunta por útima vez si queremos proceder a la instalación:

Una vez confirmado que deseamos proceder con la instalación, el proceso empieza:

La instalación es relativamente rápida, en mi caso sólo tomo 56 segundos:

Completado el proceso de instalación, el sistema arranca y está listo para que nos podamos loguear:

Un detalle que me llamó poderosamente la atención es que la instalación full sólo ocupó 1.6GB en disco y no había ningun servicio ni instalado, ni corriendo:

Eso no es un problema, ya que podemos instalar openssh-server usando yum como en cualquier otro distribución Linux basada en RPM:

yum upgrade
yum install openssh-server

Recordemos que la instalación sólo hace eso, si deseamos que arranque el servidor ssh debemos entonces ejecutar el siguiente comando:

systemctl start sshd

Ahora si podremos accesar a nuestro servidor virtual usando Putty. Y ya estamos listos para copiar el archivo vmdk generado por VMWare a DigitalOcean y poder correr desde allí un servidor virtual, si es que así lo queremos.

La distribución CBL-Mariner sigue el principio de seguridad por defecto, la mayoría de los aspectos del sistema operativo se han creado con un énfasis en la seguridad. Viene con un kernel reforzado, actualizaciones firmadas, ASLR (Address Space Layout Randomization), endurecimiento basado en compilador y registros a prueba de manipulaciones, entre otras muchas características.