Κοινή χρήση τεχνολογίας

Χρήση Jihu Gitlab (2)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Πίνακας περιεχομένων

1. Γραμμή εντολών Gitlab για αλλαγή του κωδικού πρόσβασης διαχειριστή

2. Διαχείριση υπηρεσιών Gitlab

3. Διαδικασία υποβολής κώδικα ανάπτυξης της εταιρείας

4. Δημιουργία αντιγράφων ασφαλείας και ανάκτηση Gitlab

αντίγραφο ασφαλείας δεδομένων

Δοκιμή ανάκτησης δεδομένων

5. Διαμόρφωση email


 

1. Γραμμή εντολών Gitlab για αλλαγή του κωδικού πρόσβασης διαχειριστή

  1. [root@tty01 ~]# gitlab-rails console -e production # 启动GitLab的Rails控制台
  2. --------------------------------------------------------------------------------
  3. Ruby: ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
  4. GitLab: 16.11.5-jh (3a067aedcc3) EE
  5. GitLab Shell: 14.35.0
  6. PostgreSQL: 14.11
  7. ------------------------------------------------------------[ booted in 50.69s ]
  8. Loading production environment (Rails 7.0.8.1)
  9. irb(main):001:0> user = User.where(id: 1).first # id为1的是超级管理员
  10. => #<User id:1 @root>
  11. irb(main):002:0> user.password = 'Qq111111' # 密码必须至少8个字符
  12. => "Qq111111"
  13. irb(main):003:0> user.save! # 如没有问题 返回true
  14. => true
  15. irb(main):004:0> exit # 退出

2. Διαχείριση υπηρεσιών Gitlab

  1. gitlab-ctl start # 启动所有 gitlab 组件;
  2. gitlab-ctl stop # 停止所有 gitlab 组件;
  3. gitlab-ctl restart # 重启所有 gitlab 组件;
  4. gitlab-ctl status # 查看服务状态;
  5. gitlab-ctl reconfigure # 启动服务;
  6. vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
  7. gitlab-ctl tail # 查看日志;

3. Διαδικασία υποβολής κώδικα ανάπτυξης της εταιρείας

  • Οι διαχειριστές έργου (PM) δημιουργούν εργασίες στο GitLab και τις αναθέτουν σε προγραμματιστές

    • Το PM χρησιμοποιεί τη συνάρτηση Issue του GitLab για να δημιουργήσει μια εργασία και να καθορίσει τη λεπτομερή περιγραφή και τις απαιτήσεις της εργασίας.
    • Αναθέστε εργασίες σε συγκεκριμένους προγραμματιστές, ορίστε προτεραιότητες και προθεσμίες.
  • Αφού ο προγραμματιστής λάβει την εργασία, χρησιμοποιεί τον κλώνο git τοπικά για να τραβήξει τη βιβλιοθήκη κωδικών

    • Ο προγραμματιστής εκτελεί την εντολή στο τοπικό τερματικό:
      git clone <仓库地址>
    • Κλωνοποιήστε τη βάση κώδικα στο τοπικό σας περιβάλλον ανάπτυξης.
  • Οι προγραμματιστές δημιουργούν κλάδους ανάπτυξης και αναπτύσσονται

    • Δημιουργήστε έναν νέο κλάδο ανάπτυξης τοπικά, π.χ.dev
      git checkout -b dev
    • υπάρχειdevΗ ανάπτυξη κώδικα και οι τροποποιήσεις πραγματοποιούνται στο υποκατάστημα.
  • Αφού ο προγραμματιστής ολοκληρώσει την ανάπτυξη, την υποβάλλει στην τοπική αποθήκη

    • Υποβολή αλλαγών κωδικού τοπικά:
      git add . git commit -m "完成任务描述"
  • Οι προγραμματιστές κάνουν αίτηση για αίτημα συγχώνευσης υποκαταστημάτων (Αίτημα συγχώνευσης) στη διεπαφή GitLab

    • Σπρώξτε το τοπικό υποκατάστημα στον απομακρυσμένο χώρο αποθήκευσης:
      git push origin dev
    • Συνδεθείτε στο GitLab, δημιουργήστε ένα νέο αίτημα συγχώνευσης στη σελίδα αιτημάτων συγχώνευσης του έργου και επιλέξτε τον κλάδο προέλευσης και τον κλάδο προορισμού που θα συγχωνευθούν (συνήθωςmasterήmain)。
  • Το PM ελέγχει τις υποβολές και τις τροποποιήσεις κώδικα στο GitLab Αφού επιβεβαιώσει ότι είναι σωστές, επιβεβαιώστε ότι ο κλάδος του προγραμματιστή θα συγχωνευθεί στον κύριο κλάδο.

    • Ο PM εξετάζει το αίτημα συγχώνευσης στο GitLab, συμπεριλαμβανομένων των αλλαγών κώδικα και των εγγραφών υποβολής.
    • Εάν όλα πάνε καλά, ο πρωθυπουργός θα εγκρίνει το αίτημα συγχώνευσης και θα το κάνειdevΥποκατάστημα συγχωνεύθηκε σεmasterκλαδί.
  • Ο προγραμματιστής επιβεβαιώνει ότι η ανάπτυξη ολοκληρώθηκε από το Mark που έγινε στο GitLab και κλείνει το ζήτημα.

    • Οι προγραμματιστές μπορούν να προσθέσουν στην περιγραφή όταν υποβάλλουν ένα αίτημα συγχώνευσηςclose #1(σε#1είναι ο αριθμός Έκδοσης), έτσι ώστε όταν το Αίτημα Συγχώνευσης συγχωνευθεί, το σχετικό Θέμα θα κλείσει αυτόματα.
    • Εάν δεν προστεθεί καμία οδηγία για το κλείσιμο του ζητήματος στην περιγραφή, ο προγραμματιστής μπορεί να κλείσει με μη αυτόματο τρόπο το ζήτημα στη σελίδα Ζήτημα.

 

4. Δημιουργία αντιγράφων ασφαλείας και ανάκτηση Gitlab

Ελέγξτε την έκδοση συστήματος και την έκδοση λογισμικού

  1. [root@tty01 ~]# cat /etc/redhat-release
  2. Rocky Linux release 9.4 (Blue Onyx)
  3. [root@tty01 ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
  4. 16.11.5-jh
αντίγραφο ασφαλείας δεδομένων

Ανοίξτε το αρχείο διαμόρφωσης /etc/gitlab/gitlab.rb και προβάλετε ένα στοιχείο διαμόρφωσης που σχετίζεται με τη δημιουργία αντιγράφων ασφαλείας:

 

  1. [root@tty01 ~]# vim /etc/gitlab/gitlab.rb #启用下述两个配置项
  2. gitlab_rails['manage_backup_path'] = true #指定GitLab是否应该自动管理备份路径
  3. gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #指定GitLab备份文件的存储路径

Αυτό το στοιχείο καθορίζει τη διαδρομή του προεπιλεγμένου αρχείου αντιγράφων ασφαλείας Μπορείτε να τροποποιήσετε τη διαμόρφωση και να εκτελέσετε gitlab-ctl επαναδιαμόρφωση ή επανεκκίνηση του gitlab-ctl Επανεκκινήστε την υπηρεσία για να τεθεί σε ισχύ.

  1. [root@tty01 ~]# gitlab-ctl reconfigure
  2. [root@tty01 ~]# gitlab-ctl restart

Εκτελέστε την εντολή δημιουργίας αντιγράφων ασφαλείας σε αντίγραφο ασφαλείας

[root@tty01 ~]# gitlab-rake gitlab:backup:create

Μετά την εκτέλεση της εντολής, εμφανίζεται ένα προειδοποιητικό μήνυμα:gitlab.rbκαιgitlab-secrets.json Το αρχείο περιέχει ευαίσθητα δεδομένα και δεν περιλαμβάνεται σε αυτό το αντίγραφο ασφαλείας. Κατά την επαναφορά ενός αντιγράφου ασφαλείας, αυτά τα αρχεία πρέπει να δημιουργηθούν μη αυτόματα.

Φυσικά, αυτά μπορούν να γίνουν και σε συνδυασμό με προγραμματισμένες εργασίες.

Ελέγξτε εάν τα αρχεία στον κατάλογο αντιγράφων ασφαλείας υπάρχουν κανονικά

  1. [root@tty01 ~]# ls /var/opt/gitlab/backups/
  2. 1720624341_2024_07_10_16.11.5-jh_gitlab_backup.tar

Ρυθμίστε το χρόνο διατήρησης αντιγράφων ασφαλείας για να αποτρέψετε τη δημιουργία αντιγράφων ασφαλείας κάθε μέρα. Υπάρχει σίγουρα ο κίνδυνος να είναι γεμάτος ο κατάλογος.

  1. [root@tty01 ~]# vim /etc/gitlab/gitlab.rb # 启用下述两个配置项
  2. gitlab_rails['backup_keep_time'] = 604800 # 设置备份文件过期时间,604800秒等于7天

Ο ρυθμισμένος χρόνος είναι σε δευτερόλεπτα Εάν θέλετε να τον αυξήσετε ή να τον μειώσετε, μπορείτε να τον ρυθμίσετε απευθείας εδώ και να επανεκκινήσετε την υπηρεσία μέσω της επανεκκίνησης του gitlab-ctl.

Όταν ολοκληρωθεί η δημιουργία αντιγράφων ασφαλείας, ένα πακέτο tar με τη σημερινή ημερομηνία θα δημιουργηθεί στον κατάλογο αντιγράφων ασφαλείας.

Δοκιμή ανάκτησης δεδομένων

Συνδεθείτε ως διαχειριστής και διαγράψτε στοιχεία της βιβλιοθήκης

 

Πρέπει να διακόψετε την υπηρεσία σύνδεσης δεδομένων πριν από την επαναφορά:

  1. [root@tty01 ~]# gitlab-ctl stop unicorn
  2. [root@tty01 ~]# gitlab-ctl stop sidekiq

Εάν πρόκειται για έναν κεντρικό υπολογιστή που έχει δημιουργηθεί από την Taishin, γενικά δεν χρειάζεται να σταματήσετε τη λειτουργία σύνδεσης δεδομένων Θεωρητικά, είναι εντάξει να σταματήσετε αυτές τις δύο υπηρεσίες. Η διακοπή αυτών των δύο υπηρεσιών είναι η διασφάλιση της συνέπειας των δεδομένων. Γενικά, τα αρχεία αντιγράφων ασφαλείας στον κατάλογο /data/gitlab/backups του παλιού διακομιστή αντιγράφονται στο /data/gitlab/backups στον νέο διακομιστή για ανάκτηση Εδώ, γίνεται επαναφορά του πειραματικού περιβάλλοντος σε αυτό το μηχάνημα.

Δικαιώματα σημείωσης: Δεν είναι δυνατή η επαναφορά 600 αδειών. Το πειραματικό περιβάλλον μπορεί να αλλάξει σε 777. Για το περιβάλλον παραγωγής, συνιστάται η τροποποίηση του ιδιοκτήτη και της ομάδας.

Αφού εκτελέσετε την εντολή, περιμένετε λίγο... και μετά πληκτρολογήστε ναι δύο φορές για να ολοκληρωθεί η ανάκτηση.

  1. [root@tty01 ~]# cd /var/opt/gitlab/backups/ #进入数据备份目录
  2. [root@tty01 backups]# gitlab-rake gitlab:backup:restore BACKUP=1720624341_2024_07_10_16.11.5-jh

Δώστε προσοχή στο όνομα του αρχείου μετά το BACKUP= εδώ Σε νεότερες εκδόσεις, το πλήρες όνομα δεν μπορεί να χρησιμοποιηθεί, το _gitlab_backup.tarh θα προστεθεί αυτόματα, επομένως το σημείο μετά το όνομα του αρχείου δεν μπορεί να γραφτεί εδώ.

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

  1. [root@tty01 backups]# gitlab-ctl restart
  2. [root@tty01 backups]# gitlab-ctl start unicorn
  3. [root@tty01 backups]# gitlab-ctl start sidekiq

Σημείωση: Η επαναφορά του gitlab μέσω αρχείων αντιγράφων ασφαλείας πρέπει να διασφαλίζει ότι οι εκδόσεις gitlab των δύο κεντρικών υπολογιστών είναι συνεπείς, διαφορετικά θα σας ζητηθεί να μην ταιριάζουν οι εκδόσεις.  

 

Ανανεώστε ή συνδεθείτε ξανά για να δείτε τα διαγραμμένα δεδομένα.

 

 

5. Διαμόρφωση email

Αλλάξτε το στη διεύθυνση email, τον πάροχο υπηρεσιών email, τον κωδικό εξουσιοδότησης, τη θύρα και άλλες πληροφορίες.

  1. [root@tty01 ~]# vim /etc/gitlab/gitlab.rb #找到并替换邮箱配置,更改你的邮箱进行测试
  2. gitlab_rails['smtp_enable'] = true
  3. gitlab_rails['smtp_address'] = "smtp.163.com"
  4. gitlab_rails['smtp_port'] = 465
  5. gitlab_rails['smtp_user_name'] = "newrain_wang@163.com"
  6. gitlab_rails['smtp_password'] = "UWYNCPQOBQFCDLIW"
  7. gitlab_rails['smtp_domain'] = "smtp.163.com"
  8. gitlab_rails['smtp_authentication'] = "login"
  9. gitlab_rails['smtp_enable_starttls_auto'] = false
  10. gitlab_rails['smtp_tls'] = true
  11. gitlab_rails['smtp_pool'] = false
  12. gitlab_rails['gitlab_email_from'] = 'newrain_wang@163.com'

 

Μετά τη ρύθμιση, αποθηκεύστε και πραγματοποιήστε έξοδο και, στη συνέχεια, φορτώστε ξανά τη διαμόρφωση.

[root@tty01 ~]# gitlab-ctl reconfigure  #重新配置 GitLab 服务

Συνδεθείτε στην ιστοσελίδα και συνδεθείτε ως τυχαίος χρήστης Χρησιμοποιήσαμε την τυχαία μορφή email που χρησιμοποιούσαμε στο παρελθόν.

 

Αφού κάνετε τις αλλαγές και κάνετε κλικ στην Αποθήκευση, θα εμφανιστεί ένα αναδυόμενο παράθυρο. Πρέπει να μεταβείτε στο email σας και να κάνετε κλικ στην Επιβεβαίωση για επαλήθευση.

Όταν έρχομαι στο γραμματοκιβώτιο, μπορώ να δω ότι ο αποστολέας είναι ένα γραμματοκιβώτιο qq που συμπλήρωσα τη διαμόρφωση και αποστέλλεται μια επαλήθευση στο αλλαγμένο γραμματοκιβώτιο του χρήστη.

Κάνοντας κλικ στην Επαλήθευση θα μεταβείτε σε μια νέα σελίδα, όπου μπορείτε να δείτε ότι ο χρήστης άλλαξε με επιτυχία τη διεύθυνση email του.