Compartir tecnología

Uso de Jihu Gitlab (2)

2024-07-12

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

Tabla de contenido

1. Línea de comando de Gitlab para cambiar la contraseña de administrador

2. Gestión de servicios de Gitlab

3. El proceso de envío del código de desarrollo de la empresa.

4. Copia de seguridad y recuperación de Gitlab

copias de seguridad

Recuperación de datos de prueba

5. Configuración de correo electrónico


 

1. Línea de comando de Gitlab para cambiar la contraseña de administrador

  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. Gestión de servicios de 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. El proceso de envío del código de desarrollo de la empresa.

  • Los gerentes de proyecto (PM) crean tareas en GitLab y las asignan a los desarrolladores

    • El PM utiliza la función Issue de GitLab para crear una tarea y especificar la descripción detallada y los requisitos de la tarea.
    • Asigne tareas a desarrolladores específicos, establezca prioridades y plazos.
  • Después de que el desarrollador recibe la tarea, usa git clone localmente para extraer la biblioteca de códigos.

    • El desarrollador ejecuta el comando en la terminal local:
      git clone <仓库地址>
    • Clona el código base en tu entorno de desarrollo local.
  • Los desarrolladores crean ramas de desarrollo y desarrollan

    • Cree una nueva rama de desarrollo localmente, p.dev
      git checkout -b dev
    • existirdevEl desarrollo y las modificaciones del código se realizan en la sucursal.
  • Una vez que el desarrollador completa el desarrollo, lo envía al almacén local.

    • Enviar cambios de código localmente:
      git add . git commit -m "完成任务描述"
  • Los desarrolladores solicitan una solicitud de fusión de sucursales (solicitud de fusión) en la interfaz de GitLab

    • Empuje la sucursal local al repositorio remoto:
      git push origin dev
    • Inicie sesión en GitLab, cree una nueva Solicitud de combinación en la página Solicitudes de combinación del proyecto y seleccione la rama de origen y la rama de destino que se fusionarán (generalmentemasteromain)。
  • El PM verifica los envíos y las modificaciones del código en GitLab. Después de confirmar que son correctos, confirma que la rama del desarrollador se fusionará con la rama principal.

    • PM revisa la solicitud de fusión en GitLab, incluidos los cambios de código y los registros de envío.
    • Si todo va bien, el PM aprobará la solicitud de fusión ydevSucursal fusionada enmasterrama.
  • El desarrollador confirma que Mark completó el desarrollo en GitLab y cierra el problema.

    • Los desarrolladores pueden agregar la descripción al enviar una solicitud de fusiónclose #1(en#1es el número del Asunto), de modo que cuando se fusione la Solicitud de fusión, el Asunto relacionado se cerrará automáticamente.
    • Si no se agrega ninguna instrucción para cerrar el problema a la descripción, el desarrollador puede cerrar el problema manualmente en la página del problema.

 

4. Copia de seguridad y recuperación de Gitlab

Verifique la versión del sistema y la versión del software

  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
copias de seguridad

Abra el archivo de configuración /etc/gitlab/gitlab.rb y vea un elemento de configuración relacionado con la copia de seguridad:

 

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

Este elemento define la ruta del archivo de copia de seguridad predeterminado. Puede modificar la configuración y ejecutar. gitlab-ctl reconfigurar o reiniciar gitlab-ctl Reinicie el servicio para que surta efecto.

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

Ejecute el comando de copia de seguridad para realizar una copia de seguridad

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

Después de ejecutar el comando, aparece un mensaje de advertencia:gitlab.rbygitlab-secrets.json El archivo contiene datos confidenciales y no está incluido en esta copia de seguridad. Al restaurar una copia de seguridad, es necesario realizar una copia de seguridad de estos archivos manualmente.

Por supuesto, esto también se puede hacer junto con tareas planificadas.

Compruebe si los archivos en el directorio de copia de seguridad existen normalmente

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

Establezca el tiempo de retención de la copia de seguridad para evitar que se realicen copias de seguridad todos los días. Definitivamente existe el riesgo de que el directorio esté lleno. Abra el archivo de configuración /etc/gitlab/gitlab.rb y busque la siguiente configuración.

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

El tiempo configurado está en segundos. Si desea aumentarlo o disminuirlo, puede configurarlo directamente aquí y reiniciar el servicio mediante gitlab-ctl restart para que surta efecto.

Cuando se complete la copia de seguridad, se generará un paquete tar con la fecha de hoy en el directorio de copia de seguridad.

Recuperación de datos de prueba

Inicie sesión como usuario administrativo y elimine elementos de la biblioteca

 

Debe detener el servicio de conexión de datos antes de restaurar:

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

Si se trata de un host creado por Taishin, generalmente no es necesario detener la operación de conexión de datos. En teoría, está bien detener estos dos servicios. Detener estos dos servicios es garantizar la coherencia de los datos. Generalmente, los archivos de copia de seguridad en el directorio /data/gitlab/backups del servidor anterior se copian a /data/gitlab/backups en el nuevo servidor para su recuperación. Aquí, el entorno experimental se restaura en esta máquina.

Permisos de nota: 600 permisos no se pueden restaurar. El entorno experimental se puede cambiar a 777. Para el entorno de producción, se recomienda modificar el propietario y el grupo.

Después de ejecutar el comando, espere un momento... y luego ingrese sí dos veces para completar la recuperación.

  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

Preste atención al nombre del archivo después de BACKUP= aquí. En las versiones más recientes, no se puede usar el nombre completo, _gitlab_backup.tarh se agregará automáticamente, por lo que el punto después del nombre del archivo no se puede escribir aquí.

Una vez completada la recuperación, ahora puede reiniciar todos los servicios o simplemente iniciar los dos servicios de conexión de datos que se cerraron anteriormente.

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

Nota: La restauración de gitlab a través de archivos de respaldo debe garantizar que las versiones de gitlab de los dos hosts sean consistentes; de lo contrario, se indicará que las versiones no coinciden.  

 

Actualice o inicie sesión nuevamente para ver los datos eliminados.

 

 

5. Configuración de correo electrónico

Cámbielo a su dirección de correo electrónico, proveedor de servicios de correo electrónico, código de autorización, puerto y otra información.

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

 

Después de configurar, guarde y salga, y luego vuelva a cargar la configuración.

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

Inicie sesión en la página web e inicie sesión como usuario aleatorio. Usamos el formato de correo electrónico aleatorio que usamos antes. Ahora lo cambiamos a nuestro correo electrónico real para probar nuestra configuración de correo electrónico.

 

Después de realizar cambios y hacer clic en Guardar, aparecerá una ventana emergente. Debes ir a tu correo electrónico y hacer clic en Confirmar para verificación.

Cuando llego al buzón, puedo ver que el remitente es un buzón qq. Completé la configuración y se envía una verificación al buzón modificado del usuario.

Al hacer clic en Verificar, se saltará a una nueva página, donde podrá ver que el usuario ha cambiado correctamente su dirección de correo electrónico.