Página 1 de 1

[RESUELTO] Unidad de red e instalación

Publicado: 10 de octubre de 2019 - 10:38 a. m.
por Herzas
Hola a todos, estoy trabajando en una nueva instalación de WAPT y para esta me gustaría evitar usar un servidor de replicación. Así que he optado por crear paquetes WAPT para mis programas de software más grandes. Algo bastante simple como: `
def install():
cmd = '\\server_north\software_folder\large_software\setup.exe'`.
Por supuesto, al igual que con mi configuración habitual, obtengo ese maravilloso mensaje de error:
"No se pudo encontrar la ruta especificada".
Entonces descubrí que: El servicio WAPT se ejecuta bajo una cuenta de sistema local (NT_Authority\System), y esta cuenta es complicada para unidades de red con mi controlador de dominio Samba.
Así que probé la función de configuración de sesión de WAPT y, milagrosamente, funciona.
Excepto que, desafortunadamente, solo funciona si el usuario tiene derechos de acceso a esa ubicación de red, y si está abierta y el usuario ingresa su contraseña al menos una vez.

Así que tengo un punto de partida: con el comando
cmd = 'net use * \\serveur_nord\dossierlogiciel\groslogiciel\ /USER:login mdp'
localmente no hay problema, pero a través de wapt se bloquea. Debo estar faltándome un ' ' o un " ".

Finalmente, estoy abierto a cualquier sugerencia que me permita prescindir de estos servidores de replicación.

Re: Unidad de red e instalación

Publicado: 12 de octubre de 2019 - 11:19 a. m.
por sfonteneau
Incluir una contraseña en texto plano en un paquete WAPT no es lo ideal.

¿Realmente quieres hacerlo mediante SMB?

Te recomiendo configurar un pequeño servidor web, como Nginx, Apache o similar, y luego usar wget en el paquete.

Re: Unidad de red e instalación

Publicado: 14 de octubre de 2019 - 8:34 a. m.
por nliaudat

Código: Seleccionar todo

import win32wnet

wnet_connect(host, username, password)
#dès la connexion établie, l'accès au dossier est possible.

def wnet_connect(host, username, password):
    unc = ''.join(['\\\\', host])
    try:
        win32wnet.WNetAddConnection2(0, None, unc, None, username, password)
    except Exception, err:
        if isinstance(err, win32wnet.error):
            # Disconnect previous connections if detected, and reconnect.
            if err[0] == 1219:
                win32wnet.WNetCancelConnection2(unc, 0, 0)
                return wnet_connect(host, username, password)
        raise err
Crea un usuario wapt-install de solo lectura en tu carpeta de software sin ningún otro acceso

Un ejemplo de cómo seleccionar el servidor más cercano en función de la puerta de enlace:

Código: Seleccionar todo

def getdownloadserver():
    #### Get gateway and set depending server
    location = str(get_default_gateways()).split('.')[2]  ## third octet of gateway ip address

    if location == 0 : 
        return "10.0.0.X"
    elif location == 1 : 
        return "10.0.1.X"
    elif location == 2 : 
        return "10.0.2.X"
    else :
        return "10.0.0.X"

Re: Unidad de red e instalación

Publicado: 14 de octubre de 2019 - 09:15
por sfonteneau
Recuerde hacer una copia en lugar de ejecutar el instalador directamente desde la unidad de red. Esto evita varios problemas