Cómo instalar Git en un Servidor Cloud

4min

Cuando trabajamos en el desarrollo de un proyecto, es esencial contar con algún sistema de control de versiones del código y Git es una de las mejores herramientas para ello, como explicábamos en nuestro artículo Control de versiones: Git y GitHub.

Aunque técnicamente no es obligatorio contar con un servidor remoto como repositorio global para un proyecto, sí que simplifica mucho la operativa del equipo de desarrollo si optamos por instalar  y configurar Git en un Servidor Cloud, de modo que nos sirva de repositorio global para que todos los integrantes de un proyecto puedan sincronizar el código.

Git-Logo-2Color

Para aclarar posibles dudas, el procedimiento que vamos a relatar sería el necesario para trabajar con Git evitando tener que subir el código a servicios de hosting Git, como Github o similares. Está pensado especialmente para aquellas personas o equipos de trabajo que prefieren no ceder el alojamiento de su código a terceros.

Partimos de la base de que has creado un Servidor Cloud con Linux en el Panel de Control de Cloudbuilder Next.  Si no tienes idea de cómo se hace, te sugerimos leer el post Cómo instalar el paquete LAMP en un Servidor Cloud o echarle un vistazo a nuestro vídeo tutorial Cómo crear Servidores Cloud y aumentar su capacidad.

Instalar Git en el servidor

Antes que nada tendremos que instalar el propio Git en el Servidor Cloud. Este paso es muy sencillo gracias a los gestores de paquetes que vienen con las distribuciones de Linux.

Si estás en Ubuntu o Debian, harás algo como

apt-get install git

Si estás en CentOS, escribirás este comando:

yum install git-core

install-git

Protocolos

Git puede trabajar con diversos protocolos entre los que se encuentran: local, SSH, Git y HTTP. Cada uno tiene sus características que los hacen más o menos adecuados en diversas circunstancias. Dadas las condiciones habituales del trabajo remoto, donde los integrantes de un proyecto pueden estar en varias localizaciones y donde el repositorio global está en un servidor remoto, el más adecuado sería SSH.

Trabajaremos con este protocolo porque SSH permite el acceso al servidor para todos los desarrolladores que conozcan la clave, porque nos ofrece gran seguridad y porque facilita tanto la lectura como escritura de datos. Como desventaja principal se encuentra el no poder otorgar acceso anónimo al repositorio, pero sin embargo esto no suele ser un problema en la mayoría de equipos de trabajo.

Poniendo el repositorio Git en el servidor

El primer paso, aún en nuestra máquina local, es realizar una copia, sin carpeta de proyecto, del repositorio que vamos a subir.

git clone --bare miproyecto miproyecto.git

En el anterior comando miproyecto es una carpeta de un repositorio que tengas en tu máquina local con Git. Luego «miproyecto.git» es la copia que vas a realizar.

clone-bare2

Luego subimos la copia a nuestro servidor remoto mediante el comando scp.

scp -r miproyecto.git root@10.0.0.10:/opt/git

En el anterior comando, miproyecto.git es el repositorio clonado. Luego, root es nuestro usuario con el que conectamos por ssh al servidor y 10.0.0.10 sería la IP del servidor donde vamos a subir el repositorio.

scp2

Una vez realizado este paso, tenemos estas posibilidades básicas:

  • Un usuario que tenga acceso de lectura SSH a la carpeta /opt/git del servidor, podrá clonar ese repositorio en su ordenador local mediante el comando:
     git clone root.u.otro.usuario@10.0.0.10:/opt/git/miproyecto.git

    clone-remote

  • Un usuario con permiso de escritura SSH en la carpeta del proyecto (/opt/git/miproyecto.git) podría hacer push de su código normalmente.
  • El usuario que inició la carga del proyecto al repositorio podría agregar el servidor remoto con «remote add» y hacer push o pull normalmente.

Obviamente, una vez tengas el Servidor Cloud con Git instalado y el repositorio de trabajo, quedarán a tu disposición todas las operaciones habituales que vienes haciendo con el sistema de control de versiones. Y a partir de ahora, todos los desarrolladores podrán sincronizar el estado de sus proyectos contra el Servidor Cloud.

Fernán García de Zúñiga

Productos relacionados: