Git είναι το πιο δημοφιλές σύστημα ελέγχου εκδόσεων στον τομέα της ανάπτυξης λογισμικού. Είναι ανοιχτού κώδικα και συντηρείται ενεργά από το 2005 από τον Linus Torvalds, τον διάσημο δημιουργό του Linux. Σήμερα, ένας εκπληκτικός αριθμός έργων λογισμικού (συμπεριλαμβανομένων των εμπορικών) χρησιμοποιούν το Git για τη διαχείριση εκδόσεων.
Το Git ακολουθεί μια κατανεμημένη αρχιτεκτονική, καθιστώντας το ένα τέλειο παράδειγμα ενός DVCS (Distributed Version Control System). Χρησιμοποιώντας το Git, μπορούμε να διαχειριστούμε ταυτόχρονα ένα τοπικό και ένα απομακρυσμένο αποθετήριο. Σε αυτόν τον οδηγό, we will demonstrate how to configure an automatic deployment of a Git project with a VPS.
Προαπαιτούμενα
Σε αυτόν τον οδηγό, θα υπάρχει ένα τοπικό αποθετήριο και ένα απομακρυσμένο αποθετήριο στο VPS. Το τοπικό αποθετήριο θα προωθεί τις αλλαγές στο απομακρυσμένο αποθετήριο. Από το απομακρυσμένο αποθετήριο, μπορούμε να προωθήσουμε τις αλλαγές στον beta ή live κλάδο. Για να το επιτύχετε αυτό, υπάρχουν μερικά προαπαιτούμενα που πρέπει να φροντίσετε πρώτα.
- Ένα τοπικό μηχάνημα και ένας απομακρυσμένος διακομιστής, που χρησιμοποιούν και οι δύο Ubuntu ως λειτουργικό σύστημα. Αυτός ο οδηγός παρουσιάζει πώς να διαμορφώσετε και να εγκαταστήσετε διακομιστές Ubuntu.
- Και τα δύο μηχανήματα είναι ρυθμισμένα με Git.
Για να δημιουργήσουμε μια ασφαλή σύνδεση με το VPS, θα χρησιμοποιήσουμε SSH. Ευτυχώς, το Git υποστηρίζει επίσης το SSH ως πρωτόκολλο για τη σύνδεση με απομακρυσμένα αποθετήρια. Αυτός ο οδηγός εξερευνά τη ρύθμιση του SSH για σύνδεση σε απομακρυσμένους διακομιστές στο Ubuntu.
Ρύθμιση του VPS
Στον απομακρυσμένο διακομιστή μας, θα έχουμε την ακόλουθη ρύθμιση:
- Κατάλογος live: /var/www/dummy-domain.com
- Αποθετήριο διακομιστή: /var/repo/site.git
Από το τοπικό μηχάνημα, το Git θα προωθεί τις ενημερώσεις στο αποθετήριο του VPS. Από το αποθετήριο του VPS, θα ρυθμίσουμε ένα σενάριο που θα χρησιμοποιεί το Git για να τις προωθεί αυτόματα στον κατάλογο live. Είναι επίσης δυνατό να ρυθμίσετε ένα αποθετήριο για beta εκδόσεις.
-
Δημιουργία των Αποθετηρίων
Συνδεθείτε στο VPS και δημιουργήστε τις τοποθεσίες των αποθετηρίων:
|
1 2 3 |
cd /var sudo mkdir -pv repo && cd repo sudo mkdir -pv site.git && cd site.git |
Στη συνέχεια, αρχικοποιήστε το αποθετήριο Git:
|
1 |
sudo git init --bare |
Εδώ, η σημαία --bare περιγράφει ότι δεν θα υπάρχουν αρχεία πηγαίου κώδικα, παρά μόνο τα στοιχεία ελέγχου εκδόσεων.
-
Hooks
Στη συνέχεια, θα ρυθμίσουμε τα hooks για το αποθετήριο. Κάθε αποθετήριο Git περιέχει έναν φάκελο με το όνομα hooks. Περιέχει δείγματα αρχείων που χρησιμεύουν ως πρότυπα για hooks και διάφορες προσαρμοσμένες ενέργειες.
Σύμφωνα με την official documentation του Git, υπάρχουν τρεις τύποι hooks:
- pre-receive: Εκτελείται μόλις ο διακομιστής λάβει ένα αίτημα push.
- post-receive: Εκτελείται όταν ολοκληρωθεί ένα αίτημα push.
- update: Παρόμοιο με το pre-receive. Ωστόσο, εκτελείται μία φορά ανά κλάδο.
Από την τοποθεσία του αποθετηρίου, εκτελέστε την εντολή ls :
|
1 |
ls -l |
Αλλάξτε τον τρέχοντα κατάλογο σε hooks:
|
1 |
cd hooks/ |
Τώρα, δημιουργήστε το σενάριο post-receive :
|
1 |
sudo nano post-receive |
Μέσα στο σενάριο, εισαγάγετε τον ακόλουθο κώδικα. Βεβαιωθείτε ότι έχετε αλλάξει τις τοποθεσίες των καταλόγων ανάλογα:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/dummy-domain.com --git-dir=/var/repo/site.git checkout -f |
Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Ορίστε το αρχείο ως εκτελέσιμο:
|
1 |
sudo chmod +x post-receive |
Τώρα, κάθε φορά που ολοκληρώνεται ένα push, το Git θα κοιτάζει στο σενάριο post-receive και θα τοποθετεί τα αρχεία στη θέση τους ανάλογα.
Ρύθμιση του Τοπικού Μηχανήματος
Το απομακρυσμένο μηχάνημα είναι έτοιμο να δεχτεί εισερχόμενες ενημερώσεις έργου Git. Στη συνέχεια, θα ρυθμίσουμε το τοπικό αποθετήριο ώστε να χρησιμοποιεί το VPS ως τον απομακρυσμένο διακομιστή Git.
Ας δημιουργήσουμε έναν δοκιμαστικό κατάλογο έργου Git:
Τώρα, αρχικοποιήστε το αποθετήριο:
|
1 |
sudo git init |
Πρέπει να δηλώσουμε την απομακρυσμένη διαδρομή του αποθετηρίου. Εδώ, θα αναφερόμαστε στην απομακρυσμένη τοποθεσία ως τον κλάδο live . Στη συνέχεια, εκτελέστε την ακόλουθη εντολή:
|
1 |
sudo git remote add live ssh://<remote_username>@<remote_ip_address>/var/repo/site.git |
Ας το δοκιμάσουμε. Προσθέσαμε ένα σενάριο κελύφους στον κατάλογο του έργου:
Στη συνέχεια, προσθέστε το αρχείο στο έργο και πραγματοποιήστε ένα commit:
|
1 2 |
sudo git add . sudo git commit -m "random commit" |
Στην επόμενη εντολή, θα κάνουμε push το έργο στον live διακομιστή:
|
1 |
sudo git push live master |
Το Git θα συνδεθεί στο VPS χρησιμοποιώντας SSH. Εάν η σύνδεση SSH έχει ρυθμιστεί ώστε να χρησιμοποιεί κωδικό πρόσβασης, το Git θα ζητήσει τον κωδικό πρόσβασης ελέγχου ταυτότητας.
Αποθετήριο Beta
Τι γίνεται αν το έργο δεν πρόκειται να αναπτυχθεί σε ένα βήμα; Ίσως απαιτεί περαιτέρω δοκιμές μέσα σε έναν κατάλογο beta. Χρησιμοποιώντας τη μέθοδο που περιγράφηκε μέχρι τώρα, μπορούμε να δημιουργήσουμε έναν άλλο κλάδο στο VPS, ο οποίος αναφέρεται ως ο κλάδος beta κλάδος.
-
Ρύθμιση του κλάδου Beta στο VPS
Αρχικά, πρέπει να δημιουργήσουμε τους καταλόγους για το VPS. Συνδεθείτε στο VPS και δημιουργήστε έναν κατάλογο κάτω από το /var/www:
|
1 2 |
cd /var/www sudo mkdir beta |
Τώρα, χρειαζόμαστε ένα αποθετήριο Git που θα λειτουργεί ως ο κλάδος beta branch:
|
1 2 |
cd /var/repo sudo mkdir -pv beta.git && cd beta.git |
Αρχικοποιήστε το αποθετήριο:
|
1 |
sudo git init --bare |
Όπως και πριν, εφαρμόστε ένα σενάριο post-receive script:
|
1 2 |
cd hooks sudo nano post-receive |
Μετά από αυτό, εισαγάγετε τον ακόλουθο κώδικα:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/beta --git-dir=/var/repo/beta.git checkout -f |
Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Επισημάνετε το post-receive ως εκτελέσιμο αρχείο:
|
1 |
sudo chmod +x post-receive |
-
Προσθήκη του αποθετηρίου Beta στον τοπικό υπολογιστή
Είμαστε τώρα έτοιμοι να προσθέσουμε το αποθετήριο beta στο τοπικό μας αποθετήριο. Μέσα από τον τοπικό κατάλογο του έργου, εκτελέστε την ακόλουθη εντολή Git:
|
1 |
sudo git remote add beta ssh://<username>@<remote_ip_address>/var/repo/beta.git |
Voila! Το τοπικό αποθετήριο έχει πλέον ρυθμιστεί με το απομακρυσμένο αποθετήριο beta. Δοκιμάστε να κάνετε push τις αλλαγές:
|
1 2 3 |
sudo git add . sudo git commit -m "beta version" sudo git push beta master |
-
Μετάβαση από το Beta στο Live στο VPS
Ας υποθέσουμε ότι όλες οι αλλαγές έχουν συγκεντρωθεί στο αποθετήριο beta repo. Πώς κάνετε push τις αλλαγές στο αποθετήριο live repo; Είναι πολύ απλό. Μέσα στο αποθετήριο beta repo στο VPS, προσθέτουμε το τοπικό αποθετήριο live repo. Στη συνέχεια, απλώς κάνουμε push την έκδοση beta release στο αποθετήριο live repo.
Συνδεθείτε στο VPS και εκτελέστε τις ακόλουθες εντολές:
|
1 2 |
cd /var/repo/beta.git sudo git remote add live ../site.git |
Στη συνέχεια, μπορείτε να κάνετε push την έκδοση beta release στο live:
|
1 |
sudo git push live master |
Τελικές Σκέψεις
Αυτός ο οδηγός δείχνει με επιτυχία πώς να ρυθμίσετε και να χρησιμοποιήσετε ένα VPS ως απομακρυσμένο αποθετήριο για το έργο σας Git. Το VPS μπορεί να αναπτύξει αυτόματα τους πιο πρόσφατους κώδικες και αρχεία χωρίς καμία περίπλοκη διαδικασία. Μπορεί επίσης να λειτουργήσει ως κέντρο συνεργασίας μεταξύ πολλαπλών ομάδων ανάπτυξης.
Με τη βοήθεια του Git, μπορείτε να δημιουργήσετε έναν απλό μηχανισμό για αυτόματη ανάπτυξη. Ωστόσο, για τη σωστή διαχείριση του έργου, συνιστάται η χρήση κάποιου εργαλείου όπως το GitLab. Ο ακόλουθος οδηγός παρουσιάζει την εγκατάσταση και ανάπτυξη του GitLab σε ένα VPS που διαχειρίζεται πολλαπλά έργα. Μπορείτε επίσης να δείτε πώς να ρυθμίσετε αγωγούς (pipelines) GitLab Continuous Integration (CI) στο Ubuntu 20.04.
Καλή συνέχεια!















Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.