[TIP] Ejercicio: Multipass y LXD

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 20685

    [TIP] Ejercicio: Multipass y LXD

    Este tema ha surgido por el aburrimiento estos dias de confinamiento, ya a raiz de esto "Canonical releases LXD 4.0 LTS machine container hypervisor·"

    https://www.neowin.net/news/canonica...ner-hypervisor


    El articulo anuncia que existe una version para windows... lo cual no parecia tener sentido. Bien, a raiz precisamente de ello, vamos a hacerlo en plan ejercicio: os digo lo que teneis que hacer... lo haceis en plan tonto... y una vez vistos los resultados, si quiereis lo comentamos.

    Lo primero: necesitamos Windows 10, version 1803 o superior. Con Hyper-V activado.

    Descargar e instalar en nuestra maquina la uitlidad, tambien de Ubuntu, Multipass:

    https://github.com/canonical/multipa...Bwin-win64.exe

    Una vez descargado, ejecutamos en un powershell:

    Código:
    multipass launch --name ubuntu-lts
    Observamos y vemos que esto nos crea una maquina virtual llamada ubuntu-lts. Podemos ahora ejecutar el icono que nos ha dejado en el menu de windows el Multipass que no es nada mas que una utilidad que se monta en icontray.

    Antes de nada, paramos la maquina virtual creada, y le ponemos mas CPU's y algo mas de memoria. Por defecto solo le ponme una cpu.

    O bien podriamos haberla creado, por ejemplo con 8 cpus, 3 gigas de memoria y 127 gigas de disco duro con el comando:

    Código:
    multipass launch --name ubuntu-lts  -c 8  -m 3G -d 127G
    Ahora podemos arrancar la maquina virtual a pelo, o bien con el icono que el Multimass nos ha dejado en el systray. Y en ese mismo icono, podemos decir que nos arranque un shell, lo cual nos dará una consola bash en dicha virtual.

    Desde esa consola bash, ejecutamos:

    Código:
    sudo apt update
    sudo apt upgrade
    sudo snap install lxd
    sudo lxd init
    Con el ultimo comando, nos ira pidiendo cosas y dejamos todo por defecto excepto lo que marco a coninuacion:

    Código:
    ubuntu@primary:~$ lxd init
    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=15GB]:
    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]:
    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]:
    Would you like LXD to be available over the network? (yes/no) [default=no]: [SIZE=16px][COLOR=#d35400][B]yes[/B][/COLOR][/SIZE]
    Address to bind LXD to (not including port) [default=all]:
    Port to bind LXD to [default=8443]:
    Trust password for new clients:  [[COLOR=#d35400][SIZE=16px]teclear aqui password de los containers a crear][/SIZE][/COLOR]
    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]:
    Y ahora ejecutamos dentro de ese mismo shell de comandos:

    Código:
    lxc launch ubuntu:18.04 first
    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:

    Código:
    lxc list
    Con lxc help podeis ver lo que es capaz de hacer LXC

    Y ahora, 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 remote add my-images IP_MAQUINA_VIRTUAL
    lxc remote switch my-images
    lxc list
    lxc exec <image> -- /bin/bash
    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:

    Código:
    lcx remote list
    lxc remote set-url my-images https://nueva_IP:8443
    Bien... y ahora, una vez hecho el ejercicio, toca investigar todo lo hecho. Lo dejo para vosotros... y preguntar... que para eso estamos aqui.

    (es que estoy vago para escribir así de repente, todo...)


    NOTA: El servicio LXD hay que arrancarlo cada vez que arranquemos la virtual. Para que se arranque automaticamente en la virtual ejecutamos:

    Código:
    sudo update-rc.d lxd enable
    NOTA2:
    El dicso que crea Multipass es pequeño a que no ser que lo hayamos forzado con el parametro -d en la primera creacion con launch. Mi consejo si no se ha hecho lo anterior es parar la virtual, y en sus propiedades, en el disco, darle a Editar y modificar su tamaño a 127 GB (es dinamico). Una vez arrancada de nuevo, podemos ver en ella que ha tomado todo el espacio para el filesyten con el comando linux 'df'.
  • jquilezl
    Super Moderator
    • Dec
    • 724

    #2
    Una duda, la IP_MAQUINA_VIRTUAL entiendo que es la 172.21.12.228 de la imagen que te pongo, y no la del contenedor first que sale arriba en el recuadro, no?

    Comentario

    • jmtella
      Administrator
      • Nov
      • 20685

      #3
      Originalmente publicado por jquilezl Ver Mensaje
      Una duda, la IP_MAQUINA_VIRTUAL entiendo que es la 172.21.12.228 de la imagen que te pongo, y no la del contenedor first que sale arriba en el recuadro, no?
      Efectivamente... la de la virtual, no la del contenedor...

      Comentario

      • jmtella
        Administrator
        • Nov
        • 20685

        #4
        Enlaces que merecen la pena para entender conceptos:

        https://multipass.run/
        https://linuxcontainers.org/lxd/getting-started-cli/

        Comentario

        • jmtella
          Administrator
          • Nov
          • 20685

          #5
          Por cierto, lo que no consigo de momento es esto:

          https://blog.simos.info/how-to-run-l...iners-in-wsl2/

          Es decir en vez la virtual usar un Ubuntu 18.04 wsl 2 en windows, y los contenedores con LXD dentro de él.

          NOTA: intentalo... pero debes tener recien instalado desde la tienda un Ubuntu 18.04... no vale uno viejo actualizado. Desistala el que tienes, si lo tuvieses, e instala el ultimo.

          Comentario

          • jmtella
            Administrator
            • Nov
            • 20685

            #6
            Originalmente publicado por jmtella Ver Mensaje
            Por cierto, lo que no consigo de momento es esto:

            https://blog.simos.info/how-to-run-l...iners-in-wsl2/

            Es decir en vez la virtual usar un Ubuntu 18.04 wsl 2 en windows, y los contenedores con LXD dentro de él.

            NOTA: intentalo... pero debes tener recien instalado desde la tienda un Ubuntu 18.04... no vale uno viejo actualizado. Desistala el que tienes, si lo tuvieses, e instala el ultimo.
            Por cierto, conseguido: en vez de la virtual con multipass uso con WSL 2 de Ubuntu... pero no le he conseguido es con ese articulo... sino de otra forma (usando la imaginacion)

            Es decir activar el LXD en WSL 2 y poner los contenedores dentro de él

            Comentario

            • jquilezl
              Super Moderator
              • Dec
              • 724

              #7
              Esta tarde lo miro, si vuelvo pronto.

              Comentario

              • jquilezl
                Super Moderator
                • Dec
                • 724

                #8
                Bueno, voy siguiendo los pasos del enlace; le estoy haciendo un upgrade e instalando el lxd, pues a pesar de que el artículo dice que lo tiene por defecto, la máquina wsl2 no lo tenía.
                Y ya me falla la instalación del lxd, como se ve en la imagen
                Haga clic en la imagen para ver una versión más grande  Nombre:	snaplxd.JPG Visitas:	0 Size:	14,8 KB ID:	41003

                En el ubuntu del multipass se instaló sin problemas a la primera
                Vale, se instala con sudo apt install lxd (¿que diferencia hay entre snap y apt? ¿y por qué en un ubuntu funciona uno y en otro el otro? ¿no se supone que los dos ubuntu son similares?
                Pues no se ha instalado tampoco, a mitad de la instalación me dice que le falta snapd
                Vale, estaba usando un ubunto 19.10. Instalo un 18.04 limpio y vuelvo a empezar.
                Mismo error. ... cannot communicate with server... pero conectividad sí tiene con internet, comprobado.

                Editado por última vez por jquilezl; 08/04/2020, 20:12:09.

                Comentario

                • jmtella
                  Administrator
                  • Nov
                  • 20685

                  #9
                  Originalmente publicado por jquilezl Ver Mensaje
                  Bueno, voy siguiendo los pasos del enlace; le estoy haciendo un upgrade e instalando el lxd, pues a pesar de que el artículo dice que lo tiene por defecto, la máquina wsl2 no lo tenía.
                  Y ya me falla la instalación del lxd, como se ve en la imagen
                  Haga clic en la imagen para ver una versión más grande Nombre:	snaplxd.JPG Visitas:	0 Size:	14,8 KB ID:	41003

                  En el ubuntu del multipass se instaló sin problemas a la primera
                  Vale, se instala con sudo apt install lxd (¿que diferencia hay entre snap y apt? ¿y por qué en un ubuntu funciona uno y en otro el otro? ¿no se supone que los dos ubuntu son similares?
                  Pues no se ha instalado tampoco, a mitad de la instalación me dice que le falta snapd
                  Vale, estaba usando un ubunto 19.10. Instalo un 18.04 limpio y vuelvo a empezar.
                  Mismo error. ... cannot communicate with server... pero conectividad sí tiene con internet, comprobado.
                  Si es realmente un 1804 RECIEN instalado, no tienes que hacer nada... simplemente:

                  sudo service lxd start

                  Comentario

                  • jmtella
                    Administrator
                    • Nov
                    • 20685

                    #10
                    Originalmente publicado por jmtella Ver Mensaje

                    Si es realmente un 1804 RECIEN instalado, no tienes que hacer nada... simplemente:

                    sudo service lxd start
                    Ese articulo no dice la verdad, pero quiero que lo vayas probando... Y este tampoco: https://wsl.dev/wsl2-lxd-funtoo/

                    Pero...entre los dos me dieron la idea de como hacerlo...

                    Comentario

                    • jmtella
                      Administrator
                      • Nov
                      • 20685

                      #11
                      NOTA, el Ubuntu de multipass y el de la tienda son diferentes. El de la tienda no admite snap ya que el systemd de ubuntu no es el boot del linux, sino que es un microkernel de MS...que se envarga de arranca las distribuciones. Y el de la tienda ya tiene el LXD... (18.04.2)...

                      Comentario

                      • jquilezl
                        Super Moderator
                        • Dec
                        • 724

                        #12
                        Haga clic en la imagen para ver una versión más grande

Nombre:	errorlxd.JPG
Visitas:	682
Size:	35,1 KB
ID:	41008

                        Comentario

                        • jmtella
                          Administrator
                          • Nov
                          • 20685

                          #13
                          Originalmente publicado por jquilezl Ver Mensaje
                          Haga clic en la imagen para ver una versión más grande

Nombre:	errorlxd.JPG
Visitas:	682
Size:	35,1 KB
ID:	41008
                          Efectivamente ... error... Ahora a pensar como solucionarlo ... relativamente facil cuando caes... Ese mensaje te da la pista...

                          Comentario

                          • jmtella
                            Administrator
                            • Nov
                            • 20685

                            #14
                            Originalmente publicado por jmtella Ver Mensaje

                            Efectivamente ... error... Ahora a pensar como solucionarlo ... relativamente facil cuando caes... Ese mensaje te da la pista...
                            PISTA:

                            Código:
                            ......................
                            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]: [SIZE=16px][B][COLOR=#e74c3c]none[/COLOR][/B][/SIZE]
                            Would you like LXD to be available over the network? (yes/no) [default=no]: y
                            Address to bind LXD to (not including port) [default=all]:
                            Port to bind LXD to [default=8443]:
                            ...................

                            Comentario

                            • jquilezl
                              Super Moderator
                              • Dec
                              • 724

                              #15
                              Le había puesto que ipv6 none y ha terminado bien. Mañana sigo

                              Comentario

                              Trabajando...
                              X