Requisits previs
Pas 1: realitzeu tasques bàsiques per allotjar GitLab CE
Pas 2: instal·leu les dependències necessàries
Pas 3: configureu el repositori GitLab APT i, a continuació, instal·leu GitLab CE
Pas 4: habiliteu l'accés HTTPS integrant un certificat SSL Let's Encrypt
Des que Microsoft va adquirir GitHub, molts desenvolupadors han planejat migrar els seus propis dipòsits de codi des de github.com a una solució alternativa autoallotjada. GitLab Community Edition (CE) és l'opció més habitual.
Com a solució sofisticada i flexible, GitLab CE es pot desplegar mitjançant diversos mètodes, però aquí només es tractarà el mètode recomanat oficialment, la instal·lació del paquet Omnibus.
Requisits previs
- Una nova instància del servidor Vultr Debian 9 x64 amb almenys 4 GB de memòria. Es recomana 8 GB o més per atendre fins a 100 usuaris. Diguem que la seva adreça IPv4 és
203.0.113.1.
- Un usuari de sudo .
- Un domini
gitlab.example.comque s'adreça a la instància esmentada anteriorment.
Nota: quan desplegueu a la vostra pròpia instància de servidor, assegureu-vos de substituir tots els valors d'exemple per valors reals.
Enceneu un terminal SSH i inicieu sessió a la vostra instància del servidor Debian 9 x64 com a usuari sudo.
Afegiu una partició d'intercanvi i ajusteu la configuració d'intercanvi
Quan es desplega GitLab CE 11.x en una màquina amb 4 GB de memòria, cal configurar una partició d'intercanvi de 4 GB per a un bon funcionament.
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Nota: si utilitzeu una mida de servidor diferent, la mida de la partició d'intercanvi pot variar.
Per a finalitats de rendiment del sistema, es recomana configurar la configuració d'intercanvi del nucli amb un valor baix com 10:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
La sortida de l' catordre serà 10.
Configura el nom d'amfitrió de la màquina i el nom de domini complet (FQDN)
Utilitzeu les ordres següents per configurar un nom d'amfitrió, gitlab, i un FQDN, gitlab.example.com, per a la màquina:
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Podeu confirmar els resultats:
hostname
hostname -f
Configura les regles del tallafoc
Configureu regles de tallafoc raonables per executar un lloc web:
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
Tots els paràmetres anteriors tindran efecte immediatament. Utilitzeu l'ordre següent per llistar-los per revisar-los:
sudo iptables -L -n
Utilitzeu l' iptable-persistenteina per desar totes les regles d'iptables existents en un fitxer /etc/iptables/rules.v4, fent que totes les regles d'iptables siguin persistents:
sudo apt install -y iptables-persistent
Durant la instal·lació, se us demanarà si voleu desar les regles IPv4/IPv6 actuals. Premeu ENTERdues vegades per desar les regles IPv4 i IPv6 actuals a /etc/iptables/rules.v4i /etc/iptables/rules.v6.
Si intenteu actualitzar les regles IPv4 més tard, feu servir el següent per desar l'actualització:
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Actualitzar el sistema
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Quan el sistema torni a estar en funcionament, torneu a iniciar sessió amb el mateix usuari de sudo per continuar.
Pas 2: instal·leu les dependències necessàries
Abans d'instal·lar GitLab CE, heu d'instal·lar les dependències necessàries:
sudo apt install -y curl openssh-server ca-certificates
A més, si voleu utilitzar Postfix per enviar missatges de notificació, heu d'instal·lar Postfix:
sudo apt install -y postfix
Durant la instal·lació, pot aparèixer una pantalla de configuració:
- Premeu TABper ressaltar el
<OK>botó a la primera pantalla i, a continuació, premeu ENTER.
- Seleccioneu
Internet Sitei premeu ENTER.
- Per al
mail namecamp, introduïu el FQDN del vostre servidor gitlab.example.com, i premeu ENTER.
- Si apareixen altres pantalles, premeu ENTERper acceptar la configuració predeterminada.
Inicieu i activeu el servei Postfix:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Modifiqueu les regles del tallafoc per a Postfix:
sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Tenint instal·lat Postfix, heu de configurar Postfix editant el seu fitxer de configuració principal /etc/postfix/main.cfd'acord amb la configuració real del vostre servidor.
Nota: A més de les instruccions anteriors, heu d'enviar un bitllet d'assistència per cancel·lar el bloc predeterminat de Vultr al port SMTP 25.
Alternativament, si voleu utilitzar una altra solució de missatgeria, només cal que ometeu la instal·lació de Postfix i trieu utilitzar un servidor SMTP extern després d'haver instal·lat GitLab CE.
Pas 3: configureu el repositori GitLab APT i, a continuació, instal·leu GitLab CE
Configureu el dipòsit GitLab CE APT al vostre sistema:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
A continuació, instal·leu GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
La instal·lació pot trigar una estona.
Finalment, apunteu el vostre navegador web preferit a http://gitlab.example.com, i després envieu una nova contrasenya tal com se us demani per acabar la instal·lació.
A partir d'ara, utilitzeu les credencials següents per iniciar sessió com a administrador:
- Nom d'usuari:
root
- Contrasenya:
<your-new-password>
Pas 4: habiliteu l'accés HTTPS integrant un certificat SSL Let's Encrypt
De moment, heu instal·lat correctament GitLab CE 11.x a la vostra instància de servidor i els usuaris ja poden visitar el lloc mitjançant el protocol HTTP. Per motius de seguretat, es recomana habilitar l'accés HTTPS al vostre servidor GitLab integrant un certificat SSL Let's Encrypt.
Utilitzeu l' vieditor per obrir el fitxer de configuració de GitLab CE:
sudo vi /etc/gitlab/gitlab.rb
Troba les dues línies següents:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Substituïu-los en conseqüència:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['admin@example.com']
Desa i surt:
:wq!
Torneu a configurar GitLab CE mitjançant la configuració actualitzada:
sudo gitlab-ctl reconfigure
La reconfiguració pot trigar una estona.
Un cop feta la reconfiguració, tots els usuaris es veuran obligats a utilitzar el protocol HTTPS en accedir al lloc de GitLab.
Nota: després de canviar d'HTTP a HTTPS, les galetes heretades poden provocar un error de GitLab 422. L'eliminació de galetes soluciona aquest problema.