Cómo instalar Git en un Servidor Cloud
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.
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
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.
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.
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
- 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.