Ver todos los artículos

Instalación de un Servidor Git en CentOS 8

Cuando estamos desarrollando o cuando manejamos grandes cantidades de documentos y necesitamos guardar las ediciones de dichos documentos o código fuente usamos un repositorio de versionamiento, ya habíamos realizado una Instalación de SVN en CentOS 7 ... ahora vamos a instalar el popular software Git sobre CentOS 8. Para mayor información sobre este sistema distribuido de control de versión que es gratuito y de código libre se puede visitar su sitio web.

La instalación y configuración de git es muy sencilla, pero se requiere que el lector tenga conocimiento básico en Linux. Para una referencia sobre como instalar CentOS 8, por favor revisar nuestro artículo Instalación de CentOS 8.


Una vez que tenemos disponible el servidor, empezamos:

Consideraciones iniciales

Para una instalación eficiente de git debemos tener en cuenta:

  • Contar con acceso de usuario root: para instalar paquetes, crear usuarios, crear grupos, crear directorios, etc.
  • Estimar dentro de lo posible el espacio que se va a usar y el crecimiento de uso de espacio (dimensioning & capacity planning).
  • Tener una redundancia RAID en los discos si es para producción. Recomiendo RAID-5.
  • Usar discos SSD (solid-state drive), si su repositorio va a generar mucha actividad.
  • Abrir sólo la puerta del firewall necesaria en el servidor 9418 (git://).
  • Si están dentro de una VLAN para uso exclusivo de desarrollo, configurar QoS (Quality of Service) en el Switch para este servidor.
  • Establecer una estrategia de respaldo y recuperación.
  • Instalar los últimos paquetes disponibles del sistema operativo.
  • Si es posible sincronizar el reloj del servidor, NTP (Network Time Protocol).
  • Dirección IP estática y si va a tener acceso desde internet hacer el NAT (Network Address Translation) hacia una IP pública.
  • Nota importante: si estás publicando tu repositorio en internet, debe estar en la DMZ.
  • Si va a usar otros clientes para usar git, asegurarse abrir las puertas 22 (ssh), 80 (http), 443 (https) en el firewall.

Instalación de software

Con usuario root o sudo, ejecutamos:

$ su - 
# dnf -y install git

Comprobar la versión

Una vez que la instalación finalizó comprobamos la versión de git. A esta fecha (27/Dic/2019), la versión disponible es 2.18.1:

# git --version 

Crear grupo de usuarios

Crear un grupo de usuarios para los permisos al repositorio:

# groupadd reposcm 

Creación del usuario administrador

Crear un usuario administrador del repositorio:

# useradd –g reposcm -c "Git Admin" gitadmin
# passwd gitadmin

Crear directorio

El repositorio va a ser creado donde usted lo necesite, si tiene un storage externo debe ser direccionado hacia ese punto. En mi caso lo voy a crear en el directorio /var

# cd /var
# mkdir gitrepo
# chmod g+rwx /var/gitrepo
# chown :reposcm /var/gitrepo
# chown gitadmin /var/gitrepo

Inicializar nuestro repositorio

Configurar nuestro repositorio, nos conectamos con el usuario gitadmin:

$ cd /var/gitrepo 
$ mkdir repositorio.git 
$ cd repositorio.git 
$ git init --bare 
$ git config core.sharedRepository true 
$ git config receive.denyCurrentBranch ignore 

Verificar la Configuración

Aquí ya tenemos configurado nuestro servidor, para revisar la configuración en git, usamos:

$ git config --list 

Creación de un usuario del repositorio

Crear un usuario, tendrá que crear tanto usuarios como acceso quiera otorgar a su repositorio, con usuario root:

# useradd –g reposcm -c "Ing. Juan Leon" juanleon 
# passwd juanleon

Configurar su identidad

Configurar nuestra identidad en el repositorio, puede ser en el mismo servidor para hacer unas pruebas (en mi caso con el usuario juanleon):

$ git config –-global user.name "Juan Leon" 
$ git config –-global user.email juanleon@solucionesleon.com 

El primer commit

Crear un archivo de prueba para nuestro primer commit, logeado con mi usuario juanleon.

$ cd /home/juanleon
$ git clone ssh://juanleon@centos8/var/gitrepo/repositorio.git
$ cd repositorio 
$ touch esta_es_una_prueba.txt 
$ git add . 
$ git commit –m "mi primer commit" 

Y Listo!!!

Tenemos un servidor git propio usando CentOS 8. Ahora podemos acceder a nuestro repositorio desde nuestro IDE (Integrated Development Environment) preferido en mi caso Visual Studio y Eclipse. También puede que este acostumbrado a usar github ... si desea poder navegar en su repositorio desde la web puede instalar gitlab.