[Python-es] Pasar un Script a Servicio Web

Chema Cortes pych3m4 en gmail.com
Lun Nov 20 15:17:13 EST 2023


Buenas,

Tal como sugiere *Lasizoillo*, una buena alternativa es usar ssh, pero sin
dejar de usar python. No me queda claro dónde se ejecuta el script python,
si en los clientes o en el servidor.

Si la idea es que los clientes puedan ejecutar tareas en servidores, una
buena combinación es usar *Invoke* y *Fabric*. Invoke para crear tareas
automatizadas basadas en línea de comandos y Fabric para distribuir estas
tareas en una red de servidores a través de SSH. Es una combinación muy
simple, más fácil de lo que parece.

   - Invoke: https://www.pyinvoke.org
   - Fabric: https://www.fabfile.org/

Siempre depende de lo que hagas, pero la ventaja de usar Invoke/Fabric es
que te facilita muchísimo el mantenimiento de estas tareas.

Sobre crear un interface gráfico para lanzar tareas de sistema, últimamente
veo más recomendable las TUIs (*Text User Interface*). Con una terminal
moderna puedes crearte interfaces bastante funcionales, incluso usables con
ratón.

En python tienes *Textual*: https://textual.textualize.io/, mucho más
sencillo que tener que meterte a programar una web.

Si más adelante necesitas que funcione como página web basta con ejecutar
el tui con *textual-web* (https://github.com/Textualize/textual-web).

Saludos.


El vie, 10 nov 2023 a las 3:31, lasizoillo (<lasizoillo en gmail.com>)
escribió:

> Buenas,
>
> Has pensado en usar ssh?
>
> Puedes crear un user que en vez de shell ejecute tu script para no dar
> acceso a la consola a los usuarios.
>
> Con las interacciones que necesitas te va a ser un dolor hacerlas en web
> si no has trabajado con ello antes. Es muy posible (hay alguna alternativa
> para evitarlo) que cada ciclo de ejecutar y preguntar cosas al usuario
> acabe convirtiéndose en una llamada diferente a un endpoint web al que le
> pases alguna forma de mantener estado que no quieras perder entre
> diferentes llamadas (un identificador de sessión en la que se guardan los
> datos en servidor o generar campos hidden desde la respuesta web anterior
> para evitar estado en el server reenviando datos o...).
>
> Si no tuvieras interacciones algo como hug sería una forma sencilla de
> tener un script cli y un servicio http compartiendo código
> https://www.hug.rest/. Teniendo interacciones, algo que es trivial en un
> script CLI no lo es tanto en un servicio web.
>
> Un abrazo,
>
> Javi
>
>
> El jue, 9 nov 2023 a las 12:22, Pixu Kideak (<pixukideak en gmail.com>)
> escribió:
>
>> Buenos días,
>>
>> Tengo un script en Python3 que puedo ejecutarlo en una máquina GNU/Linux
>> sin problema desde consola; bueno realmente es una concatenación de
>> distintos scripts.
>>
>> Es un programa iterativo que a medida que se va ejecutando, pregunta al
>> operador por el valor de ciertas variables y éste las va metiendo; en
>> función del valor de esas variables el script realiza una cosa u otra.
>>
>> Me gustaría poder hacer funcionar este script en una red interna, que
>> desde cualquier máquina de la red, se pudiera llamar al script *(sin que
>> tenga que instalar en todos los equipos Python, sus dependencias y demás)*
>> .
>>
>> Entiendo que para ello debería de crear un Servicio Web y en la máquina
>> dónde tengo el script tener un Servidor Web; pero no tengo muy claro cómo
>> se podría hacer todo esto.
>>
>> ¿Alguien tiene experiencia en convertir un script a un Servicio Web?
>>
>> Otra posibilidad puede ser dockerizar el script, pero creo que es más
>> correcta la opción del Servicio Web.
>>
>> Un saludo y gracias.
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>


-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
https://blog.ch3m4.org
Buscador Python Hispano: http://busca.ch3m4.org
<https://blog.ch3m4.org/pages/busqueda-python-es/>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://mail.python.org/pipermail/python-es/attachments/20231120/ef32167a/attachment.html>


Más información sobre la lista de distribución Python-es