Обмен технологиями

Использование Jihu Gitlab (2)

2024-07-12

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

Оглавление

1. Командная строка Gitlab для изменения пароля администратора

2. Управление сервисами Gitlab

3. Процесс подачи кода разработки компании

4. Резервное копирование и восстановление Gitlab

резервное копирование данных

Тестовое восстановление данных

5. Настройка электронной почты


 

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 и назначают их разработчикам.

    • Менеджер проекта использует функцию Issue GitLab для создания задачи и указания подробного описания и требований к задаче.
    • Ставьте задачи конкретным разработчикам, устанавливайте приоритеты и сроки.
  • После того, как разработчик получает задание, он локально использует git clone для извлечения библиотеки кода.

    • Разработчик выполняет команду в локальном терминале:
      git clone <仓库地址>
    • Клонируйте базу кода в локальную среду разработки.
  • Разработчики создают ветки разработки и развивают

    • Создайте новую ветку разработки локально, например.dev
      git checkout -b dev
    • существоватьdevРазработка и модификация кода выполняются на ветке.
  • После того как разработчик завершает разработку, он отправляет ее на местный склад.

    • Отправьте изменения кода локально:
      git add . git commit -m "完成任务描述"
  • Разработчики подают заявку на мерж-реквест ветки (Merge request) в интерфейсе GitLab.

    • Отправьте локальную ветку в удаленный репозиторий:
      git push origin dev
    • Войдите в GitLab, создайте новый запрос на слияние на странице «Запросы на слияние» проекта и выберите исходную ветку и целевую ветку для слияния (обычноmasterилиmain)。
  • Менеджер проекта проверяет отправленные материалы и изменения кода на GitLab. Убедившись в их правильности, подтвердите, что ветка разработчика будет объединена с основной веткой.

    • Менеджер проекта проверяет мерж-реквест на GitLab, включая изменения кода и записи об отправке.
    • Если все пойдет хорошо, премьер-министр одобрит запрос на слияние иdevФилиал объединен вmasterветвь.
  • Разработчик подтверждает, что разработка завершена Марком на 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

Установите время хранения резервной копии, чтобы предотвратить ежедневное выполнение резервного копирования. Определенно существует риск переполнения каталога. Откройте файл конфигурации /etc/gitlab/gitlab.rb и найдите следующую конфигурацию:

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

Настроенное время указано в секундах. Если вы хотите увеличить или уменьшить его, вы можете настроить его прямо здесь и перезапустить службу через gitlab-ctl restart, чтобы изменения вступили в силу.

После завершения резервного копирования в каталоге резервной копии будет создан пакет 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. Настройка электронной почты

Пожалуйста, измените его на свой адрес электронной почты, поставщика услуг электронной почты, код авторизации, порт и другую информацию.

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

 

После настройки сохраните и выйдите, а затем перезагрузите конфигурацию.

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

Войдите на веб-страницу и войдите в систему как случайный пользователь. Мы использовали случайный формат электронной почты, который использовали раньше. Теперь мы меняем его на наш реальный адрес электронной почты, чтобы проверить нашу конфигурацию электронной почты.

 

После внесения изменений и нажатия кнопки «Сохранить» появится всплывающее окно. Вам нужно зайти на свою электронную почту и нажать «Подтвердить» для проверки.

Придя на ящик, я вижу, что отправителем является почтовый ящик qq, который я заполнил в конфигурации, и на измененный ящик пользователя отправляется проверка.

Нажатие кнопки «Подтвердить» приведет к переходу на новую страницу, где вы увидите, что пользователь успешно изменил свой адрес электронной почты.