Anonim

Por que Gitlab

enlaces rápidos

  • Por que Gitlab
  • Preparar
  • Instalar dependencias
  • Instalar Gitlab
  • Ejecute la configuración
  • Configuración inicial
  • Configurar SSH
    • Para SSH regular
  • Configurar UFW
  • Pensamientos finales

Hay muchas opciones excelentes para alojar sus proyectos y compartir su código. Puede configurar una cuenta de Github ahora mismo de forma gratuita. Entonces, ¿por qué querrías pasar por la molestia de configurar Gitlab tú mismo?

Hay un par de buenos argumentos para ello, en realidad, uno de los cuales es la privacidad. Gitlab es tuyo. Usted lo aloja y lo posee. Por lo tanto, puede controlar quién tiene acceso a sus repositorios. Eso también significa que tienes control sobre la plataforma misma. No está sujeto a políticas corporativas, cambios arbitrarios en los precios o la recopilación de datos.

El control de versiones autohospedado también significa que no depende de un servicio para acceder a su código. Claro, las posibilidades de que Github u otro servicio similar no esté completamente disponible debido a una interrupción son escasas, pero ¿no preferiría que no fuera una posibilidad?

Gitlab también es muy fácil de configurar, y solo requiere que tenga un servidor Linux que ejecute el software de código abierto Gitlab, la mayoría de los cuales viene preconfigurado y listo para ejecutarse.

Preparar

Antes de comenzar, necesitará configurar un VPS para alojar Gitlab, a menos que planee alojarlo localmente. Las empresas de alojamiento como DigitalOcean y Linode ofrecen opciones rentables que pueden poner en funcionamiento su servidor.

También es una buena idea comprar un nombre de dominio para su servidor también. O bien, puede apuntar un subdominio de un nombre de dominio existente a su servidor Gitlab. De cualquier manera, facilitará el acceso a la interfaz web.

Esta guía va a seguir Ubuntu 16.04 LTS. Es la última versión de soporte a largo plazo de Ubuntu, y es muy fácil trabajar con ella. Debian Stretch (Estable) también sería una gran opción, y la mayoría de esta guía también funcionará. Tanto DigitalOcean como Linode configurarán su servidor con el sistema operativo que elija, por lo que no es necesario instalar Ubuntu.

Instalar dependencias

Cuando inicia Ubuntu por primera vez, es una buena idea actualizar el sistema para asegurarse de que no haya soluciones de seguridad disponibles. Adelante, hazlo primero.

$ sudo apt update $ sudo apt upgrade

Una vez que la actualización haya terminado de ejecutarse, hay un par de cosas que deberá instalar para que Gitlab pueda comenzar. Use apt para instalarlos también.

$ sudo apt install curl openssh-server ca-certificados postfix

Eso es. Estás listo para ejecutar el script de instalación de Gitlab.

Instalar Gitlab

Gitlab mantiene su propio repositorio Debian / Ubuntu. Para habilitar el repositorio en su servidor, descargue y ejecute el script de instalación conveniente proporcionado por el equipo de Gitlab.

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Puede parecer mucho, pero solo descarga el script y le dice al shell de la línea de comando que lo ejecute. El script tardará unos segundos en ejecutarse y configurar el repositorio. Una vez que lo haga, estará listo para instalar el paquete Gitlab.

$ sudo apt install gitlab-ce

Esa instalación tomará unos minutos. Gitlab viene en un gran paquete llamado "paquete Omnibus". Viene con todo lo que Gitlab necesita todo junto.

Ejecute la configuración

Hay un script de configuración que debe ejecutar para que Gitlab se configure. Llegó en el paquete que acaba de instalar, por lo que puede ejecutarlo ahora.

$ sudo gitlab-ctl reconfigure

El script tardará unos minutos en ejecutarse en todo. Principalmente está configurando el backend de la base de datos para Gitlab. Verás muchas migraciones de Ruby on Rails corriendo por la pantalla. Puede llevar un tiempo, pero cuando esté listo, Gitlab estará listo para usar.

Configuración inicial

Abra su navegador web y navegue hasta su servidor Gitlab. Será recibido por una página que le pide que configure una contraseña administrativa. Obviamente, esta es la contraseña de su cuenta de administrador. Por defecto, ese nombre de cuenta es "root".

Después de configurar esa cuenta, puede iniciar sesión con ella o registrar una cuenta de usuario normal e iniciar sesión. De cualquier manera, una vez que inicie sesión, tendrá acceso a todo el panel de control de Gitlab para crear y administrar repositorios.

Configurar SSH

No desea tener que impulsar cambios en sus proyectos utilizando contraseñas. Es un dolor y no es muy seguro. Lo mejor que puede hacer es crear un SSH para iniciar sesión automáticamente desde cualquier computadora con la clave instalada.

Las claves SSH son muy fáciles de crear en Linux y Mac. En Windows 10, el proceso debería ser el mismo a través de la aplicación OpenSSH disponible.

Abra una terminal y ejecute el siguiente comando para crear su clave. Puede omitir la parte -C '' si solo desea usar la información de inicio de sesión de su computadora. De lo contrario, una dirección de correo electrónico suele ser la llamada correcta.

$ ssh-keygen -b 4096 -t rsa -C ''

El proceso lo guiará a través de un par de pasos. Los valores predeterminados son en su mayoría buenos, y todo se explica por sí mismo. Si elige asociar una contraseña con su clave, la necesitará cada vez que inicie sesión o presione un cambio. Puede dejar la contraseña en blanco para no usarla.

Para ver su clave, ejecute el siguiente comando. Va a parecer un montón de tonterías, y esencialmente lo es, pero esa es tu clave. Deberá copiarlo de la terminal y pegarlo en Gitlab.

$ cat ~ / .ssh / id_rsa.pub

De nuevo en Gitlab, haga clic en el icono de perfil en la esquina superior derecha de la pantalla. Luego haga clic en "Configuración" en el menú resultante. En el menú a la izquierda de la página, haga clic en "SSH Keys".

Copie la clave de su terminal. Comience después de "ssh-rsa" y pare antes de su dirección de correo electrónico. Entonces, solo copie la parte sin sentido. Péguelo en el cuadro grande con la etiqueta "Clave". Asigne un nombre a su clave y guárdela. A partir de ese momento, podrá insertar su código en sus repositorios sin iniciar sesión.

Para SSH regular

Ya tienes una clave SSH. También puede usarlo para SSH. OpenSSH tiene una utilidad incorporada para empujar la llave a su servidor.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub _IP

Reemplace server_username y SERVER_IP con su nombre de usuario en el servidor y la dirección IP del servidor.

Intente iniciar sesión nuevamente en su servidor con la nueva clave.

$ ssh _IP

Debe conectarse de inmediato sin necesidad de ingresar una contraseña.

También es mejor bloquear el resto de SSH. Es probablemente uno de los puntos más débiles en un servidor público. Abra / etc / ssh / sshd_confg en el editor de texto que elija en el servidor.

Hay un par de cosas que debes cambiar. Primero, encuentre PermitRootLogin y configúrelo en no.

PermitRootIniciar sesión no

A continuación, encuentre PasswordAuthentication, descomente y configúrelo en no.

Contraseña Autenticación no

Luego, asegúrese de que las siguientes dos líneas estén establecidas en no. Deben estar por defecto en Ubuntu, pero es mejor verificarlo.

PermitEmptyPasswords no Autenticación basada en host no

Finalmente, encuentre UsePAM en la parte inferior de la configuración y configúrelo como no también.

UsePAM no

Guarde y salga de su configuración. Luego, reinicie el servicio SSH.

$ sudo systemctl restart sshd

Configurar UFW

La última medida de seguridad que probablemente desee tomar es instalar y configurar un firewall. Ubuntu funciona muy bien con el cortafuegos sin complicaciones (UFW). Es solo una envoltura alrededor del firewall del kernel de iptables, pero hace que trabajar con el firewall sea mucho más fácil. Adelante e instálalo.

$ sudo apt install ufw

Una vez que haya instalado ufw, comience configurando las reglas predeterminadas para negar todo.

$ sudo ufw predeterminado denegar entrante $ sudo ufw predeterminado denegar saliente $ sudo ufw predeterminado denegar reenviar

Luego configure sus reglas para permitir los servicios básicos, incluido Git. Los comentarios son solo para información. No intentes ejecutarlos.

# SSH $ sudo ufw permitir en ssh $ sudo ufw permitir ssh # HTTP y HTTPS para Web $ sudo ufw permitir en http $ sudo ufw permitir http $ sudo ufw permitir en https $ sudo ufw permitir https # NTP para mantener el tiempo correcto $ sudo ufw permitir entrada ntp $ sudo ufw permitir salida ntp # Puerto 53 para resolución de dominio DNS $ sudo ufw permitir entrada 53 $ sudo ufw permitir salida 53 # Probablemente no necesitará esto # Si su servidor usa DHCP, desbloquee 67 $ sudo ufw permite 67 $ sudo ufw permite 67 # Finalmente, Git $ sudo ufw permite 9418 $ sudo ufw allo 9418

Asegúrese de que todo esté bien y habilite el firewall

$ sudo ufw enable

Puede verificar el estado de su firewall con lo siguiente:

Estado de $ sudo ufw

¡Eso es! Su servidor Gitlab está detrás de un firewall.

Pensamientos finales

Por ahora, tienes un servidor Gitlab en funcionamiento. Puede comenzar a configurar cuentas de usuario y proyectos a través de la interfaz de Gitlab. Gitlab ahora es un paquete habitual de Ubuntu, por lo que se actualizará regularmente con apt a medida que mantenga actualizado su sistema.

Gitlab le proporcionará toda la flexibilidad que necesitará para administrar sus propios proyectos y proyectos más grandes en los que puede estar trabajando con un equipo. Es una plataforma totalmente capaz y robusta en la que cada vez más equipos comienzan a confiar.

Hospede sus propios proyectos de software con gitlab