Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 5.89 KB

git-daemon.asc

File metadata and controls

70 lines (49 loc) · 5.89 KB

Δαίμονες του Git

Στη συνέχεια θα εγκαταστήσΟυμε έναν δαίμονα που θα εξυπηρετεί αποθετήρια μέσω του πρωτοκόλλου "Git". Αυτή είναι μια συνήθης επιλογή για γρήγορη και χωρίς ταυτοποίηση πρόσβαση στα δεδομένα σας στο Git. Να θυμάστε πως δεδομένου ότι πρόκειται για μια υπηρεσία χωρίς ταυτοποίηση, οτιδήποτε παρέχεται πάνω από αυτό το πρωτόκολλο είναι δημόσιο εντός του δικτύου του.

Εάν τρέχετε τον δαίμονα σε έναν διακομιστή εκτός firewall, θα πρέπει να χρησιμοποιείται μόνο για έργα που είναι ορατά σε όλον τον κόσμο. Αν ο διακομιστής στον οποίο τον τρέχετε είναι εντός firewall, μπορείτε να τον χρησιμοποιήσετε για έργα στα οποία ένας μεγάλος αριθμός ανθρώπων ή υπολογιστών (continuous integration ή build servers) έχουν πρόσβαση μόνο για ανάγνωση, όταν δεν θέλετε να προσθέσετε κλειδί SSH για τον καθένα.

Σε κάθε περίπτωση, το πρωτόκολλο Git είναι σχετικά εύκολο στη ρύθμισή του. Βασικά, θα πρέπει να εκτελέσετε αυτή την εντολή με “δαιμονοποιημένο” τρόπο:

git daemon --reuseaddr --base-path=/srv/git/ /srv/git/

Ο διακόπτης --reuseaddr επιτρέπει στον διακομιστή να επανεκκινήσει χωρίς να αναμένει αποσύνδεση των παλαιών συνδέσεων, ο διακόπτης --base-path επιτρέπει την κλωνοποίηση έργων χωρίς να καθορίζεται ολόκληρη τη διαδρομή και η διαδρομή στο τέλος λέει στον δαίμονα Git πού να αναζητήσει αποθετήρια προς εξαγωγή. Εάν τρέχετε ένα firewall, θα χρειαστεί επίσης να του ανοίξετε μία τρύπα στη θύρα 9418 στο κουτί που τον εγκαθιστάτε τον διακομιστή.

Μπορείτε να “δαιμονοποίησετε” αυτή τη διαδικασία με διάφορους τρόπους, ανάλογα με το λειτουργικό σύστημα που εκτελείτε. Δεδομένου ότι systemd είναι το πιο συνηθισμένο σύστημα init στις μοντέρνες διανομές Linux, μπορείτε να χρησιμοποιήσετε αυτό για αυτό τον σκοπό. Απλά βάλτε ένα αρχείο στο /etc/systemd/system/git-daemon.service με αυτά τα περιεχόμενα:

[Unit]
Description=Start Git Daemon

[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/

Restart=always
RestartSec=500ms

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon

User=git
Group=git

[Install]
WantedBy=multi-user.target

Ίσως προσέξατε ότι ο δαίμονας του Git daemon ξεκιά εδώ ως git τόσο για την ομάδα όσο και για τον χρήστη. Τροποποιήστε το ώστε να το προσαρμόσετε στις ανάγκες σας και σιγουρευτείτε ότι ο χρήστης που δίνεται υπάρχει στο σύστημα. Επίσης, ελέγξτε ότι το εκτελέσιμο αρχείο του Git βρίσκεται πράγματι στο /usr/bin/git αλλιώς αλλάξτε τη διαδρομή καταλλήλως.

Τέλος, θα εκτελέσετε systemctl enable git-daemon ώστε η υπηρεσία να ξεκινά αυτόματα κατά την εκκίνηση του υπολογιστή και μπορείτε να εκκινήσετε και να σταματήσετε την υπηρεσία με systemctl start git-daemon και systemctl stop git-daemon αντίστοιχα.

Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το xinetd, ένα script στο σύστημά σας sysvinit ή κάτι άλλο — με την προϋπόθεση ότι μπορείτε δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε με κάποιον τρόπο.

Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το xinetd, ένα script στο σύστημά σας sysvinit ή κάτι άλλο — εφόσον μπορείτε να δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε.

Στη συνέχεια, πρέπει να ενημερώσετε το Git ποια αποθετήρια επιτρέπουν την πρόσβαση σε διακομιστές Git χωρίς ταυτοποίηση. Μπορείτε να το κάνετε σε κάθε αποθετήριο δημιουργώντας ένα αρχείο που ονομάζεται git-daemon-export-ok.

$ cd /path/to/project.git
$ touch git-daemon-export-ok

Η παρουσία αυτού του αρχείου λέει στο Git ότι επιτρέπεται να εξυπηρετήσει αυτό το έργο χωρίς ταυτοποίηση.