La majoria del usuaris tenen Windows en el seus ordinadors, però els programadors i administradors necessiten utilitzar màquines Linux.

Introducció

El Subsistema de Windows per a Linux (WSL) proprociona una integració molt bona entre Windows i Linux en el mateix equip.

Obre un terminal de Powershell.

1.- A l'institut, has d'actualizar la versió de WSL si és el primer cop que un usuari utilitza l'ordinador:

wsl --update

Encara que et demani permisos d'administrador, digues que no, i la instal.lació segueix.

2.- En el teu ordinador has d'habilitar WSL:

wsl --install

Mira la versió de WSL i demés del teu ordinador:

> wsl --version
WSL version: 2.2.4.0
...

Ubuntu

Per instal.lar una màquina virtual no necessites ser administrador.

El primer que has de fer es mirar les màquines que tens disponibles per instal.lar:

> wsl --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install '.

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
...

A continuació instal.la la màquina Ubuntu

> wsl --install -d Ubuntu

Et demanen un nom d'usuari i contrasenya (pots utilitzar sudo amb el teu usuari)

En una màquina WSL tens accés al sistema de fitxers del Windows en el punt de muntatge /mnt/c/ per la unitat C:\, etc.

Per exemple, pots crear un fitxer hello.txt en el sistema de fitxers del Windows:

$ echo "Hola" > /mnt/c/Users/david/Downloads/Hola.txt

Pots verificar que el Windows té accés a aquest fitxer:

També pots accedir als serveis de Ubuntu desde el Windows a través de la interfície localhost.

Per exemple, pots arrencar un servidor apache:

$ sudo apt update && sudo apt install -y apache2

I amb el navegador del Windows accedir al servidor Apache a l'adreça http://localhost

Surt de la màquina amb l'ordre exit.

Mira les màquines que tens instal.lades:

> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

Pots veure que la màquina Ubuntu és la màquina per defecte (té l'*) i està aturada.

Per evitar consumir recursos quan surts de la màquina aquesta s'atura.

Pots començar una nova sessió des del terminal:

> wsl -d Ubuntu

O desde la interfície gràfica:

Instal.la Docker:

$ curl -L sh.xtec.dev/docker.sh | sh
$ su - ${USER}

Amb docker podem crear un projecte PHP

$ curl -s "https://laravel.build/web-php" | bash
latest: Pulling from laravelsail/php83-composer
8a1e25ce7c4f: Pull complete
...
Get started with: cd web-php && ./vendor/bin/sail up

Elimina la màquina Ubuntu:

> wsl --unregister Ubuntu

Importar i exportar

La millor manera de fer còpies de seguretat o moure les distribucions és a través de les ordres d'exportació i importació

Pots exportar tota la distribució a un tarball mitjançant l'ordre wsl --export. Després, pots tornar a importar aquesta distribució a WSL mitjançant l'ordre wsl --import, que pot assignar un nom a una nova ubicació d'unitat per a la importació, cosa que us permet fer còpies de seguretat i desar els estats de (o moure) les distribucions de WSL.

Tingues en compte que els serveis de còpia de seguretat tradicionals que fan còpia de seguretat de fitxers a les carpetes d'AppData (com ara Còpies de seguretat de Windows) no faran malbé els fitxers de Linux.

TODO Fer activitat corresponent

Box

Encara que al principi et pot semblar que WSl té una funcionalitat una mica limitada, nosaltres som informàtics i anem a exprimir WSL al màxim !

😊

La manera més fàcil de gestionar màquines virtual és amb l'eina Box.

Un cop has instal.lat "box" tens aquests cmdlets per gestionar WSL:

  • Connect-Wsl. Et connecta a una màquina
  • Get-Wsl. Et mostra totes les màquines
  • New-Wsl. Et crea una màquina
  • Remove-Wsl. Elimina una màquina
  • Start-Wsl. Arrenca una màquina
  • Stop-Wsl. Para una màquina.

L'usuari és box, la contrasenya és password i pertany al grup sudo.

Un cop has instal.lat el mòdul Box crea una màquina nova amb el nom esther:

> new-wsl esther
Ubuntu : Comprovant el tamany de la nova imatge ... Fet.
Ubuntu : Descarregant la nova imatge (344 MB)... Fet.
Ubuntu : Verificant el hash del fitxer ... Fet.
mars: Important la màquina virtual  ...
Import in progress, this may take a few minutes.
The operation completed successfully.

Com que no tenim una imatge a la cache, primer s'ha de descarregar la imatge de Ubuntu Cloud.

Ja et pots connectar a la màquina virtual esther:

> connect-wsl esther
mars: Arrencant ... Fet.

Ja estàs dins d'una màquina virtual Ubuntu Noble

Surt de la màquina virtual amb l'ordre exit.

Pots veure que encara que tanquis la connexió, la màquina segueix funcionant:

> Get-Wsl
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  esther          Running         2

Si vols pots crear una màquina i connectar-te directament:

> connect-wsl raquel -new

Surt de la màquina raquel.

Verifica que les dos màquines esther i raquel estan executant-se:

> Get-Wsl
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  raquel          Running         2
  esther          Running         2

Para la màquina esther i elimina la màquina raquel:

> stop-wsl esther
> remove-wsl raquel

Verifica l'estat de les màquines registrades:

> get-Wsl
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  esther          Stopped         2

Conecta't de nou a la màquina esther:

$ connect-wsl esther

Instal.la docker:

$ install-docker
$ su - ${USER}

Pots verificar que docker fuciona correctament:

$ docker run --rm -d -p 80:80 nginx

Obre un navegador a http://localhost per veure que el servidor nginx funciona.

Encara que surtis de la màquina el servidor nginx segueix funcionant.

Crea la màquina laura:

> new-wsl laura

Pots arrencar la màquina sense conectar-te:

> start-wsl laura

Això és útil quan tens una servei com apache, etc. dins la màquina que funciona de manera automàtica.

Xarxa

Pots connectar les màquines entre elles mitjançant Wireguard.

De moment s'ha de fer a mà.

Aplicacions

El subsistema de Windows per a Linux (WSL) admet l'execució d'aplicacions GUI de Linux (X11 i Wayland) a Windows d'una manera totalment integrada.

Gnome

Instal.la l'Editor de text de Gnome

$ sudo apt install -y gnome-text-editor

Crea un fitxer hello.txt amb l'editor:

$ gnome-text-editor hello.txt

Firefox

Instal.la firefox:

$ sudo snap install firefox

Arrenca firefox:

$ firefox &

USB

Obre un terminal de Powershell.

Instal.la usbipd-win (necessites permisos d'administrador)

winget install --interactive --exact dorssel.usbipd-win

TODO:

Activitats

Activitats d'aprenentatge

A continuació tens un conjunt d'activitats que utilitzen un entorn en WSL.

Esculla algunes i crea els entorns corresponents:

Aplicacions web

AlfrescoAlfresco és un gestor de continguts.
CryptpadCryptPad és una suite de col·laboració encriptada i de codi obert d'extrem a extrem.
EtherpadEtherpad és un editor col·laboratiu en temps real de codi obert i basat en web, que permet als autors editar simultàniament un document de text i veure totes les edicions dels participants en temps real.
OdooOdoo és un ERP i CRM de còdi obert creat amb Python
Wordpressundefined

Based de dades

MariaDBundefined
OracleOracle Database la base de dades relacional comercial més utilitzada per les empreses.
PostgresPostgresSQL és la base de dades relacional no comercial més utilitzada per les empreses.
MinioMinio és una solució d'emmagatzematge d'objectes d'alt rendiment que proporciona una API compatible amb Amazon Web Services S3 i admet totes les funcions bàsiques de S3

Google chrome

Canvia al directori /tmp i descarrega el paquet google-chrome-stable_current_amd64.deb:

$ cd /tmp
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

Instal.la Google Chrome:

$ sudo apt install --fix-missing ./google-chrome-stable_current_amd64.deb

L'opció --fix-missing es fa servir per instal.lar les dependències que falten per instal.lar el paquet.

Configura la màquina Linux perquè pugui accedir a la xarxa WireguardVPN d'Isard tal com s'explica a Isard.

Arrenca Google Chrome:

$ google-chrome&

Pots veure que el navegador pot accedir a la xarxa privada:

Arrenca un navegador des del Windows i verifica que no pots accedir a la xarxa privada, a no ser que també la tinguis configurada en el Windows.