Επιστροφή στο blog

Πώς να ρυθμίσετε την αυτόματη ανάπτυξη με το Git με ένα VPS

Πώς να ρυθμίσετε την αυτόματη ανάπτυξη με το Git με ένα VPS

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 κλάδο. Για να το επιτύχετε αυτό, υπάρχουν μερικά προαπαιτούμενα που πρέπει να φροντίσετε πρώτα.

Για να δημιουργήσουμε μια ασφαλή σύνδεση με το VPS, θα χρησιμοποιήσουμε SSH. Ευτυχώς, το Git υποστηρίζει επίσης το SSH ως πρωτόκολλο για τη σύνδεση με απομακρυσμένα αποθετήρια. Αυτός ο οδηγός εξερευνά τη ρύθμιση του SSH για σύνδεση σε απομακρυσμένους διακομιστές στο Ubuntu.

Ρύθμιση του VPS

Στον απομακρυσμένο διακομιστή μας, θα έχουμε την ακόλουθη ρύθμιση:

  • Κατάλογος live: /var/www/dummy-domain.com
  • Αποθετήριο διακομιστή: /var/repo/site.git

Από το τοπικό μηχάνημα, το Git θα προωθεί τις ενημερώσεις στο αποθετήριο του VPS. Από το αποθετήριο του VPS, θα ρυθμίσουμε ένα σενάριο που θα χρησιμοποιεί το Git για να τις προωθεί αυτόματα στον κατάλογο live. Είναι επίσης δυνατό να ρυθμίσετε ένα αποθετήριο για beta εκδόσεις.

  • Δημιουργία των Αποθετηρίων

Συνδεθείτε στο VPS και δημιουργήστε τις τοποθεσίες των αποθετηρίων:

Deployment with Git screenshot 1

Στη συνέχεια, αρχικοποιήστε το αποθετήριο Git:

Deployment with Git screenshot 2

Εδώ, η σημαία --bare περιγράφει ότι δεν θα υπάρχουν αρχεία πηγαίου κώδικα, παρά μόνο τα στοιχεία ελέγχου εκδόσεων.

  • Hooks

Στη συνέχεια, θα ρυθμίσουμε τα hooks για το αποθετήριο. Κάθε αποθετήριο Git περιέχει έναν φάκελο με το όνομα hooks. Περιέχει δείγματα αρχείων που χρησιμεύουν ως πρότυπα για hooks και διάφορες προσαρμοσμένες ενέργειες.

Σύμφωνα με την official documentation του Git, υπάρχουν τρεις τύποι hooks:

  • pre-receive: Εκτελείται μόλις ο διακομιστής λάβει ένα αίτημα push.
  • post-receive: Εκτελείται όταν ολοκληρωθεί ένα αίτημα push.
  • update: Παρόμοιο με το pre-receive. Ωστόσο, εκτελείται μία φορά ανά κλάδο.

Από την τοποθεσία του αποθετηρίου, εκτελέστε την εντολή ls :

Deployment with Git code screenshot 3

Αλλάξτε τον τρέχοντα κατάλογο σε hooks:

Deployment with Git code screenshot 4

Τώρα, δημιουργήστε το σενάριο post-receive :

Μέσα στο σενάριο, εισαγάγετε τον ακόλουθο κώδικα. Βεβαιωθείτε ότι έχετε αλλάξει τις τοποθεσίες των καταλόγων ανάλογα:

Deployment with Git code screenshot 6

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Ορίστε το αρχείο ως εκτελέσιμο:

Deployment with Git code screenshot 7

Τώρα, κάθε φορά που ολοκληρώνεται ένα push, το Git θα κοιτάζει στο σενάριο post-receive και θα τοποθετεί τα αρχεία στη θέση τους ανάλογα.

Ρύθμιση του Τοπικού Μηχανήματος

Το απομακρυσμένο μηχάνημα είναι έτοιμο να δεχτεί εισερχόμενες ενημερώσεις έργου Git. Στη συνέχεια, θα ρυθμίσουμε το τοπικό αποθετήριο ώστε να χρησιμοποιεί το VPS ως τον απομακρυσμένο διακομιστή Git.

Ας δημιουργήσουμε έναν δοκιμαστικό κατάλογο έργου Git:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Τώρα, αρχικοποιήστε το αποθετήριο:

Deployment with Git code screenshot 9

Πρέπει να δηλώσουμε την απομακρυσμένη διαδρομή του αποθετηρίου. Εδώ, θα αναφερόμαστε στην απομακρυσμένη τοποθεσία ως τον κλάδο live . Στη συνέχεια, εκτελέστε την ακόλουθη εντολή:

sudo git remote

Ας το δοκιμάσουμε. Προσθέσαμε ένα σενάριο κελύφους στον κατάλογο του έργου:

project directory

Στη συνέχεια, προσθέστε το αρχείο στο έργο και πραγματοποιήστε ένα commit:

Deployment with Git code screenshot 10

Στην επόμενη εντολή, θα κάνουμε push το έργο στον live διακομιστή:

Deployment with Git code screenshot 11

Το Git θα συνδεθεί στο VPS χρησιμοποιώντας SSH. Εάν η σύνδεση SSH έχει ρυθμιστεί ώστε να χρησιμοποιεί κωδικό πρόσβασης, το Git θα ζητήσει τον κωδικό πρόσβασης ελέγχου ταυτότητας.

Αποθετήριο Beta

Τι γίνεται αν το έργο δεν πρόκειται να αναπτυχθεί σε ένα βήμα; Ίσως απαιτεί περαιτέρω δοκιμές μέσα σε έναν κατάλογο beta. Χρησιμοποιώντας τη μέθοδο που περιγράφηκε μέχρι τώρα, μπορούμε να δημιουργήσουμε έναν άλλο κλάδο στο VPS, ο οποίος αναφέρεται ως ο κλάδος beta κλάδος.

  • Ρύθμιση του κλάδου Beta στο VPS

Αρχικά, πρέπει να δημιουργήσουμε τους καταλόγους για το VPS. Συνδεθείτε στο VPS και δημιουργήστε έναν κατάλογο κάτω από το /var/www:

Τώρα, χρειαζόμαστε ένα αποθετήριο Git που θα λειτουργεί ως ο κλάδος beta branch:

Αρχικοποιήστε το αποθετήριο:

sudo git init

Όπως και πριν, εφαρμόστε ένα σενάριο post-receive script:

sudo nano

Μετά από αυτό, εισαγάγετε τον ακόλουθο κώδικα:

GNU nano

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Επισημάνετε το post-receive ως εκτελέσιμο αρχείο:

sudo chmod
  • Προσθήκη του αποθετηρίου Beta στον τοπικό υπολογιστή

Είμαστε τώρα έτοιμοι να προσθέσουμε το αποθετήριο beta στο τοπικό μας αποθετήριο. Μέσα από τον τοπικό κατάλογο του έργου, εκτελέστε την ακόλουθη εντολή Git:

Voila! Το τοπικό αποθετήριο έχει πλέον ρυθμιστεί με το απομακρυσμένο αποθετήριο beta. Δοκιμάστε να κάνετε push τις αλλαγές:

sudo git add
  • Μετάβαση από το Beta στο Live στο VPS

Ας υποθέσουμε ότι όλες οι αλλαγές έχουν συγκεντρωθεί στο αποθετήριο beta repo. Πώς κάνετε push τις αλλαγές στο αποθετήριο live repo; Είναι πολύ απλό. Μέσα στο αποθετήριο beta repo στο VPS, προσθέτουμε το τοπικό αποθετήριο live repo. Στη συνέχεια, απλώς κάνουμε push την έκδοση beta release στο αποθετήριο live repo.

Συνδεθείτε στο VPS και εκτελέστε τις ακόλουθες εντολές:

Στη συνέχεια, μπορείτε να κάνετε push την έκδοση beta release στο live:

sudo git push live master

Τελικές Σκέψεις

Αυτός ο οδηγός δείχνει με επιτυχία πώς να ρυθμίσετε και να χρησιμοποιήσετε ένα VPS ως απομακρυσμένο αποθετήριο για το έργο σας Git. Το VPS μπορεί να αναπτύξει αυτόματα τους πιο πρόσφατους κώδικες και αρχεία χωρίς καμία περίπλοκη διαδικασία. Μπορεί επίσης να λειτουργήσει ως κέντρο συνεργασίας μεταξύ πολλαπλών ομάδων ανάπτυξης.

Με τη βοήθεια του Git, μπορείτε να δημιουργήσετε έναν απλό μηχανισμό για αυτόματη ανάπτυξη. Ωστόσο, για τη σωστή διαχείριση του έργου, συνιστάται η χρήση κάποιου εργαλείου όπως το GitLab. Ο ακόλουθος οδηγός παρουσιάζει την εγκατάσταση και ανάπτυξη του GitLab σε ένα VPS που διαχειρίζεται πολλαπλά έργα. Μπορείτε επίσης να δείτε πώς να ρυθμίσετε αγωγούς (pipelines) GitLab Continuous Integration (CI) στο Ubuntu 20.04.

Καλή συνέχεια!

author

Hark Labs

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

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