Berbagi teknologi

Penggunaan Jihu Gitlab (2)

2024-07-12

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

Daftar isi

1. Baris perintah Gitlab untuk mengubah kata sandi administrator

2. Manajemen layanan Gitlab

3. Proses penyerahan kode pengembangan perusahaan

4. Pencadangan dan pemulihan Gitlab

cadangan data

Uji pemulihan data

5. Konfigurasi email


 

1. Baris perintah Gitlab untuk mengubah kata sandi administrator

  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. Manajemen layanan 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. Proses penyerahan kode pengembangan perusahaan

  • Manajer proyek (PM) membuat tugas di GitLab dan menugaskannya ke pengembang

    • PM menggunakan fungsi Issue GitLab untuk membuat tugas dan menentukan deskripsi rinci dan persyaratan tugas.
    • Tetapkan tugas ke pengembang tertentu, tetapkan prioritas dan tenggat waktu.
  • Setelah pengembang menerima tugas tersebut, dia menggunakan git clone secara lokal untuk menarik pustaka kode

    • Pengembang menjalankan perintah di terminal lokal:
      git clone <仓库地址>
    • Kloning basis kode ke lingkungan pengembangan lokal Anda.
  • Pengembang membuat cabang pengembangan dan berkembang

    • Buat cabang pengembangan baru secara lokal, mis.dev
      git checkout -b dev
    • adadevPengembangan dan modifikasi kode dilakukan di cabang.
  • Setelah pengembang menyelesaikan pengembangan, ia menyerahkannya ke gudang setempat

    • Kirimkan perubahan kode secara lokal:
      git add . git commit -m "完成任务描述"
  • Pengembang mengajukan permintaan penggabungan cabang (Merge request) pada antarmuka GitLab

    • Dorong cabang lokal ke repositori jarak jauh:
      git push origin dev
    • Masuk ke GitLab, buat Permintaan Penggabungan baru di halaman Permintaan Penggabungan proyek, dan pilih cabang sumber dan cabang target yang akan digabungkan (biasanyamasterataumain)。
  • PM memeriksa pengiriman dan modifikasi kode di GitLab. Setelah memastikan kebenarannya, konfirmasikan bahwa cabang pengembang akan digabungkan ke dalam cabang utama.

    • PM meninjau Permintaan Penggabungan di GitLab, termasuk perubahan kode dan catatan pengiriman.
    • Jika semuanya berjalan baik, PM akan menyetujui Permintaan Penggabungan dan akan menyetujuinyadevCabang digabung menjadimastercabang.
  • Pengembang mengonfirmasi bahwa pengembangan telah diselesaikan oleh Mark di GitLab dan menutup Masalah.

    • Pengembang dapat menambahkan deskripsi saat mengajukan Permintaan Penggabunganclose #1(di dalam#1adalah nomor Masalah), sehingga ketika Permintaan Penggabungan digabungkan, Masalah terkait akan ditutup secara otomatis.
    • Jika tidak ada instruksi untuk menutup Masalah yang ditambahkan ke deskripsi, pengembang dapat menutup Masalah secara manual di halaman Masalah.

 

4. Pencadangan dan pemulihan Gitlab

Periksa versi sistem dan versi perangkat lunak

  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
cadangan data

Buka file konfigurasi /etc/gitlab/gitlab.rb dan lihat item konfigurasi yang terkait dengan pencadangan:

 

  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备份文件的存储路径

Item ini menentukan jalur file cadangan default. Anda dapat mengubah konfigurasi dan menjalankannya konfigurasi ulang gitlab-ctl atau restart gitlab-ctl Mulai ulang layanan agar diterapkan.

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

Jalankan perintah cadangan untuk membuat cadangan

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

Setelah menjalankan perintah, pesan peringatan muncul:gitlab.rbDangitlab-secrets.json File tersebut berisi data sensitif dan tidak disertakan dalam cadangan ini. Saat memulihkan cadangan, file-file ini perlu dicadangkan secara manual.

Tentu saja, hal ini juga dapat dilakukan bersamaan dengan tugas yang direncanakan.

Periksa apakah file di direktori cadangan ada secara normal

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

Atur waktu retensi cadangan untuk mencegah pencadangan dilakukan setiap hari. Pasti ada risiko direktori penuh. Buka file konfigurasi /etc/gitlab/gitlab.rb dan temukan konfigurasi berikut:

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

Waktu yang dikonfigurasi dalam hitungan detik. Jika Anda ingin menambah atau menguranginya, Anda dapat mengonfigurasinya langsung di sini dan memulai ulang layanan melalui gitlab-ctl restart agar diterapkan.

Ketika pencadangan selesai, paket tar dengan tanggal hari ini akan dibuat di direktori pencadangan.

Uji pemulihan data

Masuk sebagai pengguna administratif dan hapus item perpustakaan

 

Anda harus menghentikan layanan koneksi data sebelum memulihkan:

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

Jika itu adalah host yang dibuat oleh Taishin, biasanya tidak perlu menghentikan operasi koneksi data. Secara teori, kedua layanan ini boleh saja dihentikan. Menghentikan kedua layanan ini adalah untuk memastikan konsistensi data. Umumnya, file cadangan di direktori /data/gitlab/backups di server lama disalin ke /data/gitlab/backups di server baru untuk pemulihan.

Izin catatan: 600 izin tidak dapat dipulihkan. Lingkungan percobaan dapat diubah menjadi 777. Untuk lingkungan produksi, disarankan untuk mengubah pemilik dan grup.

Setelah menjalankan perintah, tunggu beberapa saat... lalu masukkan yes dua kali untuk menyelesaikan pemulihan.

  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

Perhatikan nama file setelah BACKUP= di sini. Pada versi yang lebih baru, nama lengkap _gitlab_backup.tarh akan otomatis ditambahkan, jadi titik setelah nama file tidak dapat ditulis di sini.

Setelah pemulihan selesai, kini Anda dapat memulai ulang semua layanan, atau memulai saja kedua layanan koneksi data yang ditutup tadi.

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

Catatan: Memulihkan gitlab melalui file cadangan harus memastikan bahwa versi gitlab dari kedua host konsisten, jika tidak maka versinya akan tidak cocok.  

 

Refresh atau login kembali untuk melihat data yang terhapus.

 

 

5. Konfigurasi email

Silakan ubah ke alamat email Anda, penyedia layanan email, kode otorisasi, port dan informasi lainnya.

  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'] = "[email protected]"
  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'] = '[email protected]'

 

Setelah pengaturan, simpan dan keluar, lalu muat ulang konfigurasi.

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

Masuk ke halaman web dan masuk sebagai pengguna acak. Kami menggunakan format email acak yang kami gunakan sebelumnya.

 

Setelah melakukan perubahan dan mengklik Simpan, sebuah pop-up akan muncul. Anda harus membuka email Anda dan mengklik Konfirmasi untuk verifikasi.

Ketika saya masuk ke kotak surat, saya dapat melihat bahwa pengirimnya adalah kotak surat qq yang saya isi konfigurasinya, dan verifikasi dikirim ke kotak surat pengguna yang diubah.

Mengklik Verifikasi akan melompat ke halaman baru, di mana Anda dapat melihat bahwa pengguna telah berhasil mengubah alamat emailnya.