<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Buenas,</div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Tal como sugiere <i>Lasizoillo</i>, 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.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Si la idea es que los clientes puedan ejecutar tareas en servidores, una buena combinación es usar <b>Invoke</b> y <b>Fabric</b>. 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.<br></div><ul><li class="gmail_default" style="font-family:georgia,serif;font-size:large">Invoke: <a href="https://www.pyinvoke.org">https://www.pyinvoke.org</a></li><li class="gmail_default" style="font-family:georgia,serif;font-size:large">Fabric: <a href="https://www.fabfile.org/">https://www.fabfile.org/</a></li></ul><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Siempre depende de lo que hagas, pero la ventaja de usar Invoke/Fabric es que te facilita muchísimo el mantenimiento de estas tareas.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Sobre crear un interface gráfico para lanzar tareas de sistema, últimamente veo más recomendable las TUIs (<i>Text User Interface</i>). Con una terminal moderna puedes crearte interfaces bastante funcionales, incluso usables con ratón.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large">En python tienes <b>Textual</b>: <a href="https://textual.textualize.io/">https://textual.textualize.io/</a>, mucho más sencillo que tener que meterte a programar una web.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Si más adelante necesitas que funcione como página web basta con ejecutar el tui con <b>textual-web</b> (<a href="https://github.com/Textualize/textual-web">https://github.com/Textualize/textual-web</a>).<br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large">Saludos.<br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:large"><br></div></div><br><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El vie, 10 nov 2023 a las 3:31, lasizoillo (<<a href="mailto:lasizoillo@gmail.com">lasizoillo@gmail.com</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Buenas,</div><div><br></div><div>Has pensado en usar ssh?</div><div><br></div><div>Puedes crear un user que en vez de shell ejecute tu script para no dar acceso a la consola a los usuarios. </div><div><br></div><div>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...).</div><div><br></div><div>Si no tuvieras interacciones algo como hug sería una forma sencilla de tener un script cli y un servicio http compartiendo código <a href="https://www.hug.rest/" target="_blank">https://www.hug.rest/</a>. Teniendo interacciones, algo que es trivial en un script CLI no lo es tanto en un servicio web.<br></div><div><br></div><div>Un abrazo,</div><div><br></div><div>Javi<br></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El jue, 9 nov 2023 a las 12:22, Pixu Kideak (<<a href="mailto:pixukideak@gmail.com" target="_blank">pixukideak@gmail.com</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Buenos días,</div><div><br></div><div>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.<br></div><div><br></div><div>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.</div><div><br></div><div>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 <i>(sin que tenga que instalar en todos los equipos Python, sus dependencias y demás)</i>.<br></div><div><br></div><div>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.</div><div><br></div><div>¿Alguien tiene experiencia en convertir un script a un Servicio Web?</div><div><br></div><div>Otra posibilidad puede ser dockerizar el script, pero creo que es más correcta la opción del Servicio Web.</div><div><br></div><div>Un saludo y gracias.<br></div><div><br></div></div>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
</blockquote></div>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": <a href="https://blog.ch3m4.org" target="_blank">https://blog.ch3m4.org</a><br>Buscador Python Hispano: <a href="https://blog.ch3m4.org/pages/busqueda-python-es/" target="_blank">http://busca.ch3m4.org</a></div></div></div></div></div>