descargar automaticamente repo // auto git pull #git #ubuntu #server





como primera opcion podemos hacer descargarnos todo el repo en un zip con el siguiente comando es necesario buscar el token


1 vamos a profile settings




2 hacemos click en account







y ya tendremos nuestro token para ser usado en el siguiente comando


Terminal:
curl -Lk -o cirelramos.zip 'https://gitlab.com/zcqopx/pruebaparablogger/repository/archive.zip?private_token=dasd654a312das'



Terminal:
curl -Lk -o testFonax.md 'https://gitlab.com/zcqopx/preload/raw/master/README.md?private_token=312odajsldkjsa'





como segunda opción podemos usar ssh configuramos los parametros globales ojo si no han creado la llave ssh pueden mirar este tutorial



http://cirelramos.blogspot.com/2015/08/manejar-proyectos-con-gitlab-subir.html


ok, manos a la obra:


Terminal:
git config --global user.name "zcqopx"

Terminal:
git config --global user.email "zcqopx@gmail.com"




 OJO ESTE ES MI GITLAB USTEDES TIENEN OTRO USUARIO Y EMAIL


#entramos en la carpeta del proyecto antes creado

Terminal:
cd existing_folder 

#inicializamos git

Terminal:
git init 


#añadimos el repo

Terminal:
git remote add origin git@gitlab.com:zcqopx/pruebaparablogger.git 



#ahora sincronizamos los archivos locales con el origen del repo y el branch(rama), en este caso solo tengo la rama "master" es lo mas comun

Terminal:
git pull origin


por los pasos anteriores te debes dar cuenta que fue necesario colocar la clave de tu ssh para ejecutar el comando, para evitarnos esto y que se pueda ejecutar el script sin problemas utilizaremos el siguiente comando



Terminal:
ssh-add 



es posible que te de el error:


Could not open a connection to your authentication agent.


entonces ejecutaras


Terminal:
eval `ssh-agent -s`

y de nuevo el comando anterior: "ssh-add"

te pedira de nuevo la contraseña y ya quedara guardada mientras la session este activa :)



este comando por si quieres cancelar el anterior: eval $(ssh-agent)


instalamos keychain

Terminal:
apt-get install keychain






nos logeamos como root


Terminal:
sudo su




agregamos un comando para al entrar a root


Terminal:
nano /root/.bashrc 


y agregar


/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh
#hasta aqui

PRESIONAN CTRL+O para guardar y CTRL+X para salir


salimos de root

Terminal:
exit


entramos de nuevo

Terminal:
sudo su





ahora el script


Terminal:
nano /root/cargarRepo.sh

copiamos lo siguiente

#!/bin/bash
source /root/.keychain/ubuntu-sh
#en linea anterior puede cambiar un poco en el ultimo archivo dependiendo el nombre de la maquina por lo tanto lo mejor es que hagan un
#ls -la /root/.keychain/
# y asi verifiquen el nombre del archivo-sh y remplazar por el nombre adecuado
cd /var/www;
echo "cambio de directorio";
#/usr/bin/git pull -q origin;
git pull origin
git fetch origin;
git checkout -f origin/master;
#hasta aqui




ahora en el contrab


Terminal:
crontab -e



*/1 * * * * /bin/bash -l -c 'sh /root/cargarRepo.sh > /root/cargarRepo-log'
#hasta aqui



con estos comandos estaria completa la actualizacion continua del repositorio, no solamente puede ser un repo o mejor aun una sola rama del mismo repo, cualquier duda comenta y lo mas pronto posible te la resuelvo

0 comentarios :