Anuncio

Colapsar
No hay anuncio todavía.

[TIP] Scripts de asignación LXC a las imagenes de los contenedores LXD

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • [TIP] Scripts de asignación LXC a las imagenes de los contenedores LXD

    Para los que hayan seguido los articulos de LXD (en este orden)
    Veremos que siempre que reiniciamos windows, la IP del Multipaas o la IP del WSL2 cambian, con lo cual las asignaciones de LXC a las imagenes no son las correctas al conservarse la del arranque anterior y hay que volverlas a asignar con:

    Código:
    lxc remote set-url <image> https://IP:IMAGE:8443
    Igualmente en el WSL 2. tenemos que arrancar la LXD.

    Para esto ultimo, y sin entrar en el WSL podemos ejecutar:

    Código:
    wsl -d <distribucion wsl> -e service lxd star
    En mi caso, y siguiendo los ejemplos, recordar que tengo: my-images para Multipass (en la maquina virtual llamada primary), e images-wsl para el WSL 2. He hecho estos scripts para resignas las URL al LXD. Ambos scripts deben estar en el path. El primer script, lanza al segundo con lo cual solo tendremos que ejectura este.

    script assign-lxc.cmd
    Código:
    @echo off
    call lxc-assign-ip my-images primary
    call lxc-assign-ip images-wsl wsl
    echo.
    pause
    script lxc-assign-ip.cmd
    Código:
    @echo off
    setlocal enabledelayedexpansion
    if {%2} EQU {} (
    echo Se esperan dos parametros. Llamada incorrecta
    pause
    gogo :EOF
    )
    set instancia=%2
    set dipx=.
    if /i {%2} EQU {wsl} (
    for /f "usebackq tokens=1,2 delims=/ " %%a in (`wsl ""ip addr ^^^| grep -Ee 'inet.*eth0'""`) do set dipx=%%b
    ) ELSE (
    for /f "usebackq tokens=1,2,3 delims= " %%a in (`multipass list`) do if /i {%%a} EQU {%2} if /i {%%b} EQU {Running} set dipx=%%c
    )
    if {%dipx%} EQU {.} (
    echo Error en obtencion de IP de instancia %2
    goto :EOF
    ) ELSE (
    @echo lxc remote set-url %1 https://%dipx%:8443
    lxc remote set-url %1 https://%dipx%:8443
    goto :EOF
    )
    Ejecutamos el primero y ya estaría. No hacerlo en el inicio de wiindows, sino unos segundos mas tarde, yha que los servicios de windows deben estar todos arrancados..







Trabajando...
X