Volver al blog

Cómo configurar el despliegue automático con Git con un VPS

Cómo configurar el despliegue automático con Git con un VPS

Git es el sistema de control de versiones más popular en el campo del desarrollo de software. Es de código abierto y se mantiene activamente desde 2005 por Linus Torvalds, el famoso creador de Linux. Hoy en día, una cantidad asombrosa de proyectos de software (incluidos los comerciales) utilizan Git para la gestión de versiones.

Git sigue una arquitectura distribuida, lo que lo convierte en un ejemplo perfecto de un DVCS (Distributed Version Control System). Al usar Git, podemos gestionar tanto un repositorio local como uno remoto simultáneamente. En esta guía, demostraremos cómo configurar un despliegue automático de un proyecto de Git con un VPS.

Requisitos previos

En esta guía, habrá un repositorio local y un repositorio remoto en el VPS. El repositorio local enviará los cambios al repositorio remoto. Desde el repositorio remoto, podemos enviar los cambios a la rama betalive . Para lograr esto, hay un par de requisitos previos de los que debes encargarte primero.

Para establecer una conexión segura con el VPS, utilizaremos SSH. Afortunadamente, Git también admite SSH como protocolo para conectarse a repositorios remotos. Esta guía explora la configuración de SSH para conectarse a servidores remotos en Ubuntu.

Configuración del VPS

En nuestro servidor remoto, tendremos la siguiente configuración:

  • Directorio en vivo: /var/www/dummy-domain.com
  • Repositorio del servidor: /var/repo/site.git

Desde la máquina local, Git enviará las actualizaciones al repositorio del VPS. Desde el repositorio del VPS, configuraremos un script que Git utilizará para enviarlas automáticamente al directorio en vivo. También es posible configurar un repositorio para lanzamientos de beta .

  • Creación de los repositorios

Conéctate al VPS y crea las ubicaciones de los repositorios:

Deployment with Git screenshot 1

A continuación, inicia el repositorio de Git:

Deployment with Git screenshot 2

Aquí, la bandera --bare describe que no habrá archivos de origen, solo los componentes de control de versiones.

  • Hooks

A continuación, configuraremos los hooks para el repositorio. Cada repositorio de Git contiene una carpeta llamada hooks. Contiene archivos de muestra que sirven como plantilla para hooks y varias acciones personalizadas.

Según la documentación oficial de Git, hay tres tipos de hooks:

  • pre-receive: Se ejecuta tan pronto como el servidor recibe una solicitud de push.
  • post-receive: Se ejecuta cuando se completa una solicitud de push.
  • update: Similar a pre-receive. Sin embargo, se ejecuta una vez por rama.

Desde la ubicación del repositorio, ejecuta el comando ls :

Deployment with Git code screenshot 3

Cambia el directorio actual a hooks:

Deployment with Git code screenshot 4

Ahora, crea el script post-receive :

Dentro del script, introduce el siguiente código. Asegúrate de cambiar las ubicaciones de los directorios en consecuencia:

Deployment with Git code screenshot 6

Guarda el archivo y cierra el editor. Establece el archivo como ejecutable:

Deployment with Git code screenshot 7

Ahora, cada vez que se complete un push, Git buscará en el script post-receive y colocará los archivos en su lugar correspondiente.

Configuración de la máquina local

La máquina remota está lista para aceptar actualizaciones entrantes del proyecto de Git. A continuación, configuraremos el repositorio local para usar el VPS como el servidor remoto de Git.

Creemos un directorio de proyecto de Git de muestra:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Ahora, inicia el repositorio:

Deployment with Git code screenshot 9

Tenemos que declarar la ruta remota del repositorio. Aquí, nos referiremos a la ubicación remota como la rama live . Luego, ejecuta el siguiente comando:

sudo git remote

Probémoslo. Añadimos un script de shell al directorio del proyecto:

project directory

A continuación, añade el archivo al proyecto y realiza un commit:

Deployment with Git code screenshot 10

En el siguiente comando, subiremos el proyecto al servidor live :

Deployment with Git code screenshot 11

Git se conectará al VPS usando SSH. Si la conexión SSH fue configurada para usar una contraseña, Git solicitará la contraseña de autenticación.

Repositorio Beta

¿Qué pasa si el proyecto no se va a desplegar en un solo paso? Tal vez requiera más pruebas dentro de un directorio beta. Usando el método descrito hasta ahora, podemos crear otra rama en el VPS, denominada la rama beta.

  • Configuración de la rama Beta en el VPS

Primero, necesitamos crear los directorios para el VPS. Conéctese al VPS y cree un directorio bajo /var/www:

Ahora, necesitamos un repositorio de Git que actúe como la rama beta:

Inicialice el repositorio:

sudo git init

Al igual que antes, implemente un script post-receive:

sudo nano

Después de eso, introduzca el siguiente código:

GNU nano

Guarde el archivo y cierre el editor. Marque post-receive como un archivo ejecutable:

sudo chmod
  • Añadir el repositorio Beta en la máquina local

Ahora estamos listos para añadir el repositorio beta a nuestro repositorio local. Desde el directorio del proyecto local, ejecute el siguiente comando de Git:

¡Listo! El repositorio local ahora está configurado con el repositorio remoto beta. Intente subir los cambios:

sudo git add
  • Pasar de Beta a Live en el VPS

Digamos que todos los cambios se acumulan en el repositorio beta . ¿Cómo se suben los cambios al repositorio live ? Es muy sencillo. Dentro del repositorio beta en el VPS, añadimos el repositorio local live . Luego, simplemente subimos la versión beta al repositorio live .

Conéctese al VPS y ejecute los siguientes comandos:

Luego, puede subir la versión beta a live:

sudo git push live master

Conclusiones

Esta guía demuestra con éxito cómo configurar y utilizar un VPS como repositorio remoto para su proyecto de Git. El VPS puede desplegar automáticamente el código y los archivos más recientes sin ningún proceso complejo. También puede actuar como el centro de colaboración entre múltiples equipos de desarrollo.

Con la ayuda de Git, puede establecer un mecanismo sencillo para el despliegue automático. Sin embargo, para una gestión de proyectos adecuada, se recomienda utilizar algo como GitLab. La siguiente guía muestra cómo instalar y desplegar GitLab en un VPS que gestiona múltiples proyectos. También puede consultar cómo configurar pipelines de Integración Continua (CI) de GitLab en Ubuntu 20.04.

¡Feliz informática!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.