LXD es un Hypervisor de Ubuntu con el cual podemos crear contendores dentro de un Ubuntu de una manera sencilla y rápida. Los contenedores se ejecutan a una velocidad y prestaciones asombrosas.
Aconsejo para poder entender este arciulo ver mi otro TIP https://jmtella.com/foro/forum/ejerc...ultipass-y-lxd en el cual usamos multippass en windows para crear una virtual de Ubuntu capaz de tener LXD. Pero mi pregunta, cuando realicé dicho practica, es ¿seria posible que en vez de una virtual fuese un WSL 2 en Windows 10?
En Google encontré un par de articulos que afirmaban haberlo hecho, uno de ellos haciendolo a lo bruto sin interfaz de red y usando el viproxy, el cual no funcionaba y otro que parecia mas serio: https://wsl.dev/wsl2-lxd-funtoo/ que podeis probarm y vereis que no funciona. Aunque es cierto que en ese articulo hay alguina cosa interesante que no conocia.
REQUISITOS:
Windows 10 19041: es decir la 20H1 como minimo, ya que necesita wsl 2.
Debenos tener instalado el WSL en las caracteristicas de windows. Una vez instalado, ejecutar en una consola de comandos;
wsl --set-default-version 2
De esta forma el WSL será version 2. Seguir los mensajes si informase de alguna necesidad previa.
Posteriormente instalar de la tienda el Ubuntu 18.04 Tiene que ser esa version, y tiene que estar recien instalado. Lo comento, por si tuvieseis una vieja version que aunque esté actualidada, no vale. En ese caso, desistalarla y volverla a instalar.
ACTIVAR LXD
Abrimos el Ubunto 18.04 instalado y ejecutamos:
Esto tendremos que hacerlo a manu siempre que arranquemos ese Ubuntu. Dicho servicio no puede ponerse en automatico en un WSL ya que no arranca con el systemd estandar de Linux.
Damos permiso a nuestro usuario:
Y ahora configurar: por una unica vez tedremos que ejecutar:
Este punto es muy delicado ya que no admite marcha atras: ahora nos solictirá datos de configuracion, hay que dejar todos por defecto, excepto los dos que marco en rojo, y ademas introducir una password de confiruacion que luego se usará para acceso seguroi desde remoto.
Con esto ya podemos entonces crearnos los contenedores dentro de ese WSL 2, el primero por ejemplo:
Lo cual nos va a crear un container llamado "first" dentro de esa virtual (virtual de virtual con LXD).
Podriamos crear mas, pero con ese nos vale de momento.
Podemos ver los container creados con:
Con lxc help podeis ver lo que es capaz de hacer LXC
Si habeis hecho el ejercicio que he citando del MULTIPASS al comienzo de este articulo, ya tendreis instalado el LXC para windows, su no lo habeis hecho, realizar estos:
[SI NO SE HA INSTALADO PREVIAMENTE LCX PARA WINDOWS]
Volvemos a nuestra maquina princiapal, y nos descargamos precisamente el LXD del articulo anterior...
https://ci.appveyor.com/project/lxc/...ster/artifacts
No necesita instalacion, solamente lo desempaquetmos y lo dejamos en alguna carpeta que esté en nuestro path.
Esto lo que instala es un LXC para windows... con lo cual podremos acceder al contenedor o contenedores que estan dentro de esa virtual.
Antes de lanzarlo hay que confirarlo, para ello, en una consola de comandos, nada mas arrancarla, es decir que se posicione en nuestro usuario, ejecutamos:
La ultima linea sustituir <image> por el nombre del contenedor, es este caso lo hemos creado como "first", justo el comando anterior en esa secuancia nos dirá los creados.
Una pega, es que con esta linea:
lxc remote add my-images IP_MAQUINA_VIRTUAL
Se confiura para una IP... y cada vez que arranquemos la virtual con multipass, tendrá diferente IP ya que windows, el default switch por defecto cada vez le da una. Para cambiarlo en una sesión posterior, simplemente:
[SI YA SE HABIA INSTALADO PREVIAMENTE LCX PARA WINDOWS Y CONFIGURADO PARA MULTIPASS]
En ese caso simplemente tendremos que añadir una nueva entrada de configuracion con:
---------
Fijaros, para los que hayan hecho los del MULTIPASS que ahora tenemos dos entradas de imagenes:
my-images para MULTIPASS
my-images-wsl para wsl 2
Para cambiar de uno a otro se puede hacer con lcx remote switch <image>
Ir practicando con esto, y comentamos las dudas.
Aconsejo para poder entender este arciulo ver mi otro TIP https://jmtella.com/foro/forum/ejerc...ultipass-y-lxd en el cual usamos multippass en windows para crear una virtual de Ubuntu capaz de tener LXD. Pero mi pregunta, cuando realicé dicho practica, es ¿seria posible que en vez de una virtual fuese un WSL 2 en Windows 10?
En Google encontré un par de articulos que afirmaban haberlo hecho, uno de ellos haciendolo a lo bruto sin interfaz de red y usando el viproxy, el cual no funcionaba y otro que parecia mas serio: https://wsl.dev/wsl2-lxd-funtoo/ que podeis probarm y vereis que no funciona. Aunque es cierto que en ese articulo hay alguina cosa interesante que no conocia.
REQUISITOS:
Windows 10 19041: es decir la 20H1 como minimo, ya que necesita wsl 2.
Debenos tener instalado el WSL en las caracteristicas de windows. Una vez instalado, ejecutar en una consola de comandos;
wsl --set-default-version 2
De esta forma el WSL será version 2. Seguir los mensajes si informase de alguna necesidad previa.
Posteriormente instalar de la tienda el Ubuntu 18.04 Tiene que ser esa version, y tiene que estar recien instalado. Lo comento, por si tuvieseis una vieja version que aunque esté actualidada, no vale. En ese caso, desistalarla y volverla a instalar.
ACTIVAR LXD
Abrimos el Ubunto 18.04 instalado y ejecutamos:
Código:
sudo service lxd start
Damos permiso a nuestro usuario:
Código:
sudo usermod -aG lxd $USER
Código:
sudo lxd init
Código:
Would you like to use LXD clustering? (yes/no) [default=no]: Do you want to configure a new storage pool? (yes/no) [default=yes]: Name of the new storage pool [default=default]: Name of the storage backend to use (btrfs, dir, lvm) [default=btrfs]: Create a new BTRFS pool? (yes/no) [default=yes]: Would you like to use an existing block device? (yes/no) [default=no]: Size in GB of the new loop device (1GB minimum) [default=50GB]: Would you like to connect to a MAAS server? (yes/no) [default=no]: Would you like to create a new local network bridge? (yes/no) [default=yes]: y What should the new bridge be called? [default=lxdbr0]: What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: [B][COLOR=#e74c3c][SIZE=16px]none[/SIZE][/COLOR][/B] Would you like LXD to be available over the network? (yes/no) [default=no]: [B][SIZE=16px][COLOR=#e74c3c]yes[/COLOR][/SIZE][/B] Address to bind LXD to (not including port) [default=all]: Port to bind LXD to [default=8443]: Trust password for new clients: [B][COLOR=#e74c3c][SIZE=16px]-aqui teclear la password para los clientes-[/SIZE][/COLOR][/B] Again: Would you like stale cached images to be updated automatically? (yes/no) [default=yes] Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
Código:
lxc launch ubuntu:18.04 first
Podriamos crear mas, pero con ese nos vale de momento.
Podemos ver los container creados con:
Código:
lxc list
Si habeis hecho el ejercicio que he citando del MULTIPASS al comienzo de este articulo, ya tendreis instalado el LXC para windows, su no lo habeis hecho, realizar estos:
[SI NO SE HA INSTALADO PREVIAMENTE LCX PARA WINDOWS]
Volvemos a nuestra maquina princiapal, y nos descargamos precisamente el LXD del articulo anterior...
https://ci.appveyor.com/project/lxc/...ster/artifacts
No necesita instalacion, solamente lo desempaquetmos y lo dejamos en alguna carpeta que esté en nuestro path.
Esto lo que instala es un LXC para windows... con lo cual podremos acceder al contenedor o contenedores que estan dentro de esa virtual.
Antes de lanzarlo hay que confirarlo, para ello, en una consola de comandos, nada mas arrancarla, es decir que se posicione en nuestro usuario, ejecutamos:
Código:
md .config\lxc\ lxc lxc remote add my-images-wsl IP_MAQUINA_VIRTUAL lxc remote switch my-images-wsl lxc list lxc exec <image> -- /bin/bash
Una pega, es que con esta linea:
lxc remote add my-images IP_MAQUINA_VIRTUAL
Se confiura para una IP... y cada vez que arranquemos la virtual con multipass, tendrá diferente IP ya que windows, el default switch por defecto cada vez le da una. Para cambiarlo en una sesión posterior, simplemente:
[SI YA SE HABIA INSTALADO PREVIAMENTE LCX PARA WINDOWS Y CONFIGURADO PARA MULTIPASS]
En ese caso simplemente tendremos que añadir una nueva entrada de configuracion con:
Código:
remote add my-images-wsl IP_MAQUINA_VIRTUAL lxc remote switch my-images-wsl
Fijaros, para los que hayan hecho los del MULTIPASS que ahora tenemos dos entradas de imagenes:
my-images para MULTIPASS
my-images-wsl para wsl 2
Para cambiar de uno a otro se puede hacer con lcx remote switch <image>
Ir practicando con esto, y comentamos las dudas.
Comentario