[pyar] Actualización desatendida app Flask

Juan Carizza juan.carizza en gmail.com
Mie Abr 11 00:30:39 -03 2018


Este script compara el hash del ultimo commit local con el hash del ultimo
commit remoto, si son diferentes hay una nueva version (suponiendo que no
uses los tags de git para nombrar las versiones). Pones eso en un archivo
con permisos de ejecucion y configuras un crontab que vaya ejecutando el
script cada tanto. Para configurar el crontab podes orientarte con
http://crontab.guru/

#!/bin/bash

BRANCH_LOCAL=master
BRANCH_REMOTO=origin/master

ULTIMO_COMMIT_VERSION_LOCAL="$(git  log --pretty=oneline $BRANCH_LOCAL |
head -n1 | awk '{print $1}')"
ULTIMO_COMMIT_VERSION_REMOTA="$(git  log --pretty=oneline $BRANCH_REMOTO |
head -n1 | awk '{print $1}')"

if [ "$ULTIMO_COMMIT_VERSION_REMOTA" != "$ULTIMO_COMMIT_VERSION_LOCAL" ];
then
    echo "Hay una nueva version"
    # ejecutar comandos
    #git pull origin master
    #supervisorctl restart
fi


Saludos!


El 10 de abril de 2018, 14:59, Luis Andraschnik<luis.andraschnik en gmail.com>
escribió:

> Hola Pedro
> Para mí a Abril de 2018, eso es "too much", quizá para el futuro (Docker,
> ngrok, proxys reversos ....) hasta ssh, git y fabric llego!
>
> Leí en git que existe un Server-Side Hooks, post-receive. No sé cómo
> puede actuar con un cliente git que esté en la raspberrypi
>
> The post-receive hook runs after the entire process is completed and can
> be used to update other services or notify users. It takes the same stdin
> data as the pre-receive hook. Examples include emailing a list, notifying
> a continuous integration server, or updating a ticket-tracking system – you
> can even parse the commit messages to see if any tickets need to be opened,
> modified, or closed. This script can’t stop the push process, but the
> client doesn’t disconnect until it has completed, so be careful if you try
> to do anything that may take a long time.
>
>
>
> El 10 de abril de 2018, 13:30, Pedro Pezzarini <jose2190 en gmail.com>
> escribió:
>
>> Tengo un escenario similar (pero sin Raspberries), usamos Docker (que
>> hacen un pull y actualizan los entornos virtuales cada vez que inician) y
>> Google pub/sub para recibir el trigger de reinicio de los contenedores.
>> En Google cloudfunctions haces un Hook simple que reciba el request de
>> git y llame a pubsub.
>>
>> Otra es hacer un proxy reverso por SSH o ngrok y hacer tú deploy cómo
>> venís haciendo ...
>>
>> Otra número 2, es usar un proxy reverso o ngrok y configurar git para que
>> reciba los triggers directamente ....
>>
>>
>>
>>
>> On Tue, Apr 10, 2018, 1:13 PM Luis Andraschnik <
>> luis.andraschnik en gmail.com> wrote:
>>
>>> Hola!
>>>
>>> Tengo una aplicación flask, con supervisord y Gunicorn corriendo en una
>>> LAN, en una Raspberry PI (oficina) y otra idéntica en otra LAN
>>> (laboratorio). La aplicación la tengo en un repositorio git remoto en
>>> Dropbox (uso git-remote-dropbox que anda bárbaro), Yo tengo acceso via ssh
>>> a una Rpi a la vez, así que me gustaría que cuando hago un git push en el
>>> repositorio Git remoto, mis servers detecten automáticamente que hay una
>>> nueva versión y hagan un git pull. Actualmente lo hago a mano o a lo sumo
>>> con fabric. El problema es que no tengo acceso ssh via internet sino sólo
>>> en las LANs.
>>>
>>> Se me ocurre que cuando reinice las Rpi lo primero que hagan es un git
>>> pull antes de levantar el server de flask, una solución media bruta y que
>>> requiere que llame por teléfono y pida a alguien que me desconecte la RPI
>>> del otro sitio, otra no se me ocurre,, no sé si git o flask tiene ayudas
>>> para autoupdate.
>>>
>>> Sugerencias?
>>> Gracias!
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180411/1374b44f/attachment-0001.html>


Más información sobre la lista de distribución pyar