Partage de technologie

Utilisation de Jihu Gitlab (2)

2024-07-12

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

Table des matières

1. Ligne de commande Gitlab pour changer le mot de passe administrateur

2. Gestion des services Gitlab

3. Le processus de soumission du code de développement de l’entreprise

4. Sauvegarde et récupération Gitlab

sauvegarde de données

Tester la récupération des données

5. Configuration de la messagerie


 

1. Ligne de commande Gitlab pour changer le mot de passe administrateur

  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. Gestion des services 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. Le processus de soumission du code de développement de l’entreprise

  • Les chefs de projet (PM) créent des tâches dans GitLab et les attribuent aux développeurs

    • Le PM utilise la fonction Issue de GitLab pour créer une tâche et spécifier la description détaillée et les exigences de la tâche.
    • Attribuez des tâches à des développeurs spécifiques, définissez des priorités et des délais.
  • Une fois que le développeur a reçu la tâche, il utilise git clone localement pour extraire la bibliothèque de codes.

    • Le développeur exécute la commande dans le terminal local :
      git clone <仓库地址>
    • Clonez la base de code dans votre environnement de développement local.
  • Les développeurs créent des branches de développement et développent

    • Créez une nouvelle branche de développement localement, par ex.dev
      git checkout -b dev
    • existerdevLe développement et les modifications du code sont effectués sur la branche.
  • Une fois le développement terminé, le développeur le soumet à l'entrepôt local.

    • Soumettez les modifications de code localement :
      git add . git commit -m "完成任务描述"
  • Les développeurs postulent pour une demande de fusion de branche (demande de fusion) sur l'interface GitLab

    • Poussez la branche locale vers le dépôt distant :
      git push origin dev
    • Connectez-vous à GitLab, créez une nouvelle demande de fusion dans la page Demandes de fusion du projet et sélectionnez la branche source et la branche cible à fusionner (généralementmasteroumain)。
  • Le PM vérifie les soumissions et les modifications de code sur GitLab. Après avoir confirmé qu'elles sont correctes, confirmez que la branche du développeur sera fusionnée dans la branche principale.

    • PM examine la demande de fusion sur GitLab, y compris les modifications de code et les enregistrements de soumission.
    • Si tout se passe bien, le PM approuvera la demande de fusion etdevBranche fusionnée avecmasterbifurquer.
  • Le développeur confirme que le développement est terminé par Mark done sur GitLab et clôture le problème.

    • Les développeurs peuvent ajouter la description lors de la soumission d'une demande de fusionclose #1(dans#1est le numéro du problème), de sorte que lorsque la demande de fusion est fusionnée, le problème associé sera automatiquement fermé.
    • Si aucune instruction pour fermer le problème n'est ajoutée à la description, le développeur peut fermer manuellement le problème sur la page Problème.

 

4. Sauvegarde et récupération Gitlab

Vérifier la version du système et la version du logiciel

  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
sauvegarde de données

Ouvrez le fichier de configuration /etc/gitlab/gitlab.rb et affichez un élément de configuration lié à la sauvegarde :

 

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

Cet élément définit le chemin du fichier de sauvegarde par défaut. Vous pouvez modifier la configuration et exécuter. reconfigurer gitlab-ctl ou redémarrer gitlab-ctl Redémarrez le service pour prendre effet.

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

Exécuter la commande de sauvegarde pour sauvegarder

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

Après avoir exécuté la commande, un message d'avertissement apparaît :gitlab.rbetgitlab-secrets.json Le fichier contient des données sensibles et n'est pas inclus dans cette sauvegarde. Lors de la restauration d'une sauvegarde, ces fichiers doivent être sauvegardés manuellement.

Bien entendu, celles-ci peuvent également être réalisées en conjonction avec des tâches planifiées.

Vérifiez si les fichiers du répertoire de sauvegarde existent normalement

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

Définissez la durée de conservation des sauvegardes pour éviter que des sauvegardes soient effectuées quotidiennement. Il existe certainement un risque que le répertoire soit plein. Ouvrez le fichier de configuration /etc/gitlab/gitlab.rb et recherchez la configuration suivante :

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

Le temps configuré est en secondes. Si vous souhaitez l'augmenter ou le diminuer, vous pouvez le configurer directement ici et redémarrer le service via gitlab-ctl restart pour prendre effet.

Une fois la sauvegarde terminée, un package tar avec la date du jour sera généré dans le répertoire de sauvegarde.

Tester la récupération des données

Connectez-vous en tant qu'utilisateur administratif et supprimez les éléments de la bibliothèque

 

Vous devez arrêter le service de connexion de données avant de restaurer :

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

S'il s'agit d'un hôte construit par Taishin, il n'est généralement pas nécessaire d'arrêter l'opération de connexion de données. En théorie, il est acceptable d'arrêter ces deux services. Arrêter ces deux services, c'est assurer la cohérence des données. Généralement, les fichiers de sauvegarde du répertoire /data/gitlab/backups de l'ancien serveur sont copiés dans /data/gitlab/backups sur le nouveau serveur pour récupération. Ici, l'environnement expérimental est restauré sur cette machine.

Remarque sur les autorisations : 600 autorisations ne peuvent pas être restaurées. L'environnement expérimental peut être modifié en 777. Pour l'environnement de production, il est recommandé de modifier le propriétaire et le groupe.

Après avoir exécuté la commande, attendez un moment... puis entrez oui deux fois pour terminer la récupération.

  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

Faites attention au nom du fichier après BACKUP= ici. Dans les versions plus récentes, le nom complet ne peut pas être utilisé, _gitlab_backup.tarh sera ajouté automatiquement, donc le point après le nom du fichier ne peut pas être écrit ici.

Une fois la récupération terminée, vous pouvez maintenant redémarrer tous les services ou simplement démarrer les deux services de connexion de données précédemment fermés.

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

Remarque : La restauration de gitlab via des fichiers de sauvegarde doit garantir que les versions de gitlab des deux hôtes sont cohérentes, sinon cela indiquera que les versions ne correspondent pas.  

 

Actualisez ou reconnectez-vous pour voir les données supprimées.

 

 

5. Configuration de la messagerie

Veuillez le remplacer par votre adresse e-mail, votre fournisseur de services de messagerie, votre code d'autorisation, votre port et d'autres informations.

  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]'

 

Après le réglage, enregistrez et quittez, puis rechargez la configuration.

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

Connectez-vous à la page Web et connectez-vous en tant qu'utilisateur aléatoire. Nous avons utilisé le format de courrier électronique aléatoire que nous utilisions auparavant. Nous le remplaçons maintenant par notre véritable courrier électronique pour tester notre configuration de courrier électronique.

 

Après avoir apporté des modifications et cliqué sur Enregistrer, une fenêtre contextuelle apparaîtra. Vous devez accéder à votre adresse e-mail et cliquer sur Confirmer pour vérification.

Quand j'arrive à la boîte aux lettres, je vois que l'expéditeur est une boîte aux lettres qq que j'ai renseignée dans la configuration, et une vérification est envoyée à la boîte aux lettres modifiée de l'utilisateur.

En cliquant sur Vérifier, vous accéderez à une nouvelle page, où vous pourrez voir que l'utilisateur a réussi à modifier son adresse e-mail.