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 de GitLab RPM 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 CentOS 7 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 CentOS 7 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
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 gitlab.example.com gitlab
EOF
Podeu confirmar els resultats:
hostname
hostname -f
Modificar les regles del tallafoc
Permet el trànsit entrant HTTP i HTTPS:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Instal·leu el repo EPEL YUM i, a continuació, actualitzeu el sistema
sudo yum install -y epel-release
sudo yum -y update && 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 yum install -y curl policycoreutils-python openssh-server openssh-clients
A més, si voleu utilitzar Postfix per enviar missatges de notificació, heu d'instal·lar Postfix i modificar les regles del tallafoc de la manera següent:
sudo yum install -y postfix
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=pop3
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=smtps
sudo firewall-cmd --permanent --add-service=pop3s
sudo firewall-cmd --permanent --add-service=imaps
sudo firewall-cmd --reload
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 de GitLab RPM i, a continuació, instal·leu GitLab CE
Configureu el dipòsit de GitLab CE RPM al vostre sistema:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
A continuació, instal·leu GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" yum 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!
Executeu l'ordre següent per reconfigurar GitLab CE mitjançant la configuració actualitzada:
sudo gitlab-ctl reconfigure
La reconfiguració 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.