[Python-es] Pasar un Script a Servicio Web

Pixu Kideak pixukideak en gmail.com
Jue Nov 30 05:16:50 EST 2023


Buenos días,

Vengo de vuelta con el mensaje anterior, por temas de desarrollo en la
máquina (servidor B) dónde está instalado Python tienen corriendo también
un servidor Lighttpd que actualmente no tiene habilitado el módulo FastCGI.

Entiendo que para poder ejecutar scripts en Python sería necesario que lo
instalara y lo configurara para que permitiera la ejecución de scripts.

No sé, si con este escenario podría montar algo similar a
http://ip_servidor/script/ y este lanzara el script en cuestión.

Más dudas que tengo son:

1) Cómo podría pasar parámetros de entrada al script por URL o llamando a
una dirección web???

2) Si la llamada a una URL, lanza un script determinado que puede tardar
por ejemplo 2-3 minutos, debo tener alguna cosa en cuenta o modificar algo
en la configuración para que no salga un timeout o algo similar???

3) Actualmente los scripts del servidor B los tengo en entornos virtuales,
cada entorno tiene sus librerías y scripts; ya que realizan misiones
diferentes. ¿Se puede llamar a éstos vía web o debería realizar nuevos
scripts?

Un saludo y gracias nuevamente por su atención,

On Mon, 20 Nov 2023 at 21:17, Chema Cortes <pych3m4 en gmail.com> wrote:

> 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/>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://mail.python.org/pipermail/python-es/attachments/20231130/4859adf4/attachment.html>


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