Προαπαιτούμενα
Βήμα 1: Εκτελέστε βασικές εργασίες για τη φιλοξενία του GitLab CE
Βήμα 2: Εγκαταστήστε τις απαιτούμενες εξαρτήσεις
Βήμα 3: Ρυθμίστε το αποθετήριο GitLab APT και, στη συνέχεια, εγκαταστήστε το GitLab CE
Βήμα 4: Ενεργοποιήστε την πρόσβαση HTTPS ενσωματώνοντας ένα πιστοποιητικό Let's Encrypt SSL
Από τη στιγμή που το GitHub εξαγοράστηκε από τη Microsoft, αρκετοί προγραμματιστές έχουν προγραμματίσει να μεταφέρουν τα δικά τους αποθετήρια κώδικα από το github.com σε μια εναλλακτική λύση που φιλοξενείται από τον ίδιο τον εαυτό. Το GitLab Community Edition (CE) είναι η πιο κοινή επιλογή.
Ως εξελιγμένη και ευέλικτη λύση, το GitLab CE μπορεί να αναπτυχθεί χρησιμοποιώντας διάφορες μεθόδους, αλλά μόνο η επίσημα προτεινόμενη μέθοδος, η εγκατάσταση του πακέτου Omnibus, θα καλυφθεί εδώ.
Προαπαιτούμενα
- Ένα νέο παράδειγμα διακομιστή Vultr Debian 9 x64 με τουλάχιστον 4 GB μνήμης. 8 GB ή περισσότερα προτείνονται για εξυπηρέτηση έως και 100 χρηστών. Ας πούμε ότι η διεύθυνση IPv4 του είναι
203.0.113.1
.
- Ένας χρήστης sudo .
- Ένας τομέας
gitlab.example.com
που δείχνει προς την περίπτωση που αναφέρεται παραπάνω.
Σημείωση: Κατά την ανάπτυξη στο παράδειγμα του διακομιστή σας, φροντίστε να αντικαταστήσετε όλες τις παραδειγματικές τιμές με πραγματικές.
Ενεργοποιήστε ένα τερματικό SSH και συνδεθείτε στην παρουσία του διακομιστή Debian 9 x64 ως χρήστης sudo.
Προσθέστε ένα διαμέρισμα swap και τροποποιήστε τη ρύθμιση swappiness
Κατά την ανάπτυξη του GitLab CE 11.x σε ένα μηχάνημα με μνήμη 4 GB, απαιτείται να ρυθμίσετε ένα διαμέρισμα swap 4 GB για ομαλή λειτουργία.
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
Σημείωση: Εάν χρησιμοποιείτε διαφορετικό μέγεθος διακομιστή, το μέγεθος του διαμερίσματος swap ενδέχεται να διαφέρει.
Για λόγους απόδοσης συστήματος, συνιστάται να διαμορφώσετε τη ρύθμιση swappiness του πυρήνα σε χαμηλή τιμή όπως 10
:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
Η έξοδος της cat
εντολής θα είναι 10
.
Ρυθμίστε το όνομα κεντρικού υπολογιστή του μηχανήματος και το πλήρως πιστοποιημένο όνομα τομέα (FQDN)
Χρησιμοποιήστε τις ακόλουθες εντολές για να ρυθμίσετε ένα όνομα κεντρικού υπολογιστή gitlab
, και ένα FQDN, gitlab.example.com
, για το μηχάνημα:
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Μπορείτε να επιβεβαιώσετε τα αποτελέσματα:
hostname
hostname -f
Ρύθμιση κανόνων τείχους προστασίας
Ρυθμίστε λογικούς κανόνες τείχους προστασίας για τη λειτουργία ενός ιστότοπου:
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
Όλες οι παραπάνω ρυθμίσεις θα τεθούν σε ισχύ αμέσως. Χρησιμοποιήστε την ακόλουθη εντολή για να τα καταχωρήσετε για έλεγχο:
sudo iptables -L -n
Χρησιμοποιήστε το iptable-persistent
εργαλείο για να αποθηκεύσετε όλους τους υπάρχοντες κανόνες iptables σε ένα αρχείο /etc/iptables/rules.v4
, καθιστώντας όλους τους κανόνες iptables επίμονους:
sudo apt install -y iptables-persistent
Κατά την εγκατάσταση, θα ερωτηθείτε εάν θέλετε να αποθηκεύσετε τους τρέχοντες κανόνες IPv4/IPv6. Πατήστε ENTERδύο φορές για να αποθηκεύσετε τους τρέχοντες κανόνες IPv4 και IPv6 στο /etc/iptables/rules.v4
και /etc/iptables/rules.v6
.
Εάν προσπαθήσετε να ενημερώσετε τους κανόνες IPv4 αργότερα, χρησιμοποιήστε τα παρακάτω για να αποθηκεύσετε την ενημέρωσή σας:
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Ενημερώστε το σύστημα
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Όταν το σύστημα είναι σε λειτουργία και λειτουργεί ξανά, συνδεθείτε ξανά ως ο ίδιος χρήστης sudo για να προχωρήσετε.
Βήμα 2: Εγκαταστήστε τις απαιτούμενες εξαρτήσεις
Πριν εγκαταστήσετε το GitLab CE, πρέπει να εγκαταστήσετε τις απαιτούμενες εξαρτήσεις:
sudo apt install -y curl openssh-server ca-certificates
Επίσης, εάν θέλετε να χρησιμοποιήσετε το Postfix για την αποστολή μηνυμάτων ειδοποίησης, πρέπει να εγκαταστήσετε το Postfix:
sudo apt install -y postfix
Κατά την εγκατάσταση, ενδέχεται να εμφανιστεί μια οθόνη διαμόρφωσης:
- Πατήστε TABγια να επισημάνετε το
<OK>
κουμπί στην πρώτη οθόνη και, στη συνέχεια, πατήστε ENTER.
- Επιλέξτε
Internet Site
και πατήστε ENTER.
- Για το
mail name
πεδίο, εισαγάγετε το FQDN του διακομιστή σας gitlab.example.com
και πατήστε ENTER.
- Εάν εμφανιστούν άλλες οθόνες, πατήστε ENTERγια να αποδεχτείτε τις προεπιλεγμένες ρυθμίσεις.
Εκκινήστε και ενεργοποιήστε την υπηρεσία Postfix:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Τροποποίηση κανόνων τείχους προστασίας για το 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'
Έχοντας εγκαταστήσει το Postfix, πρέπει να ρυθμίσετε τις παραμέτρους του Postfix επεξεργάζοντας το κύριο αρχείο διαμόρφωσης /etc/postfix/main.cf
σύμφωνα με τις πραγματικές ρυθμίσεις διακομιστή σας.
Σημείωση: Εκτός από τις παραπάνω οδηγίες, πρέπει να υποβάλετε ένα δελτίο υποστήριξης για να ακυρώσετε τον προεπιλεγμένο αποκλεισμό του Vultr στη θύρα SMTP 25.
Εναλλακτικά, εάν θέλετε να χρησιμοποιήσετε άλλη λύση ανταλλαγής μηνυμάτων, απλώς παραλείψτε την εγκατάσταση του Postfix και επιλέξτε να χρησιμοποιήσετε έναν εξωτερικό διακομιστή SMTP μετά την εγκατάσταση του GitLab CE.
Βήμα 3: Ρυθμίστε το αποθετήριο GitLab APT και, στη συνέχεια, εγκαταστήστε το GitLab CE
Ρυθμίστε το αποθετήριο GitLab CE APT στο σύστημά σας:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Στη συνέχεια, εγκαταστήστε το GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
Η εγκατάσταση μπορεί να διαρκέσει λίγο.
Τέλος, τοποθετήστε το αγαπημένο σας πρόγραμμα περιήγησης στο web http://gitlab.example.com
και, στη συνέχεια, υποβάλετε έναν νέο κωδικό πρόσβασης όπως σας ζητηθεί για να ολοκληρώσετε την εγκατάσταση.
Από εδώ και στο εξής, χρησιμοποιήστε τα παρακάτω διαπιστευτήρια για να συνδεθείτε ως διαχειριστής:
- Όνομα χρήστη:
root
- Κωδικός πρόσβασης:
<your-new-password>
Βήμα 4: Ενεργοποιήστε την πρόσβαση HTTPS ενσωματώνοντας ένα πιστοποιητικό Let's Encrypt SSL
Προς το παρόν, έχετε εγκαταστήσει με επιτυχία το GitLab CE 11.x στην παρουσία του διακομιστή σας και οι χρήστες μπορούν ήδη να επισκεφτούν τον ιστότοπο χρησιμοποιώντας το πρωτόκολλο HTTP. Για λόγους ασφαλείας, συνιστάται να ενεργοποιήσετε την πρόσβαση HTTPS στον διακομιστή GitLab ενσωματώνοντας ένα πιστοποιητικό Let's Encrypt SSL.
Χρησιμοποιήστε το vi
πρόγραμμα επεξεργασίας για να ανοίξετε το αρχείο διαμόρφωσης GitLab CE:
sudo vi /etc/gitlab/gitlab.rb
Βρείτε τις ακόλουθες δύο γραμμές:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Αντικαταστήστε τα ανάλογα:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']
Αποθήκευση και έξοδος:
:wq!
Ρυθμίστε ξανά το GitLab CE χρησιμοποιώντας ενημερωμένες ρυθμίσεις:
sudo gitlab-ctl reconfigure
Η επαναδιαμόρφωση μπορεί να διαρκέσει λίγο.
Αφού ολοκληρωθεί η επαναδιαμόρφωση, όλοι οι χρήστες θα αναγκαστούν να χρησιμοποιήσουν το πρωτόκολλο HTTPS κατά την πρόσβαση στον ιστότοπο του GitLab.
Σημείωση: Μετά την εναλλαγή από HTTP σε HTTPS, τα cookie παλαιού τύπου ενδέχεται να προκαλέσουν σφάλμα GitLab 422. Η εκκαθάριση των cookies διορθώνει αυτό το πρόβλημα.