Compartilhamento de tecnologia

Uso do Jihu Gitlab (2)

2024-07-12

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

Índice

1. Linha de comando do Gitlab para alterar a senha do administrador

2. Gerenciamento de serviços Gitlab

3. Processo de envio do código de desenvolvimento da empresa

4. Backup e recuperação do Gitlab

backup de dados

Teste a recuperação de dados

5. Configuração de e-mail


 

1. Linha de comando do Gitlab para alterar a senha do 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. Gerenciamento de serviços 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. Processo de envio do código de desenvolvimento da empresa

  • Gerentes de projeto (PM) criam tarefas no GitLab e as atribuem aos desenvolvedores

    • O PM usa a função Issue do GitLab para criar uma tarefa e especificar a descrição detalhada e os requisitos da tarefa.
    • Atribua tarefas a desenvolvedores específicos, estabeleça prioridades e prazos.
  • Depois que o desenvolvedor recebe a tarefa, ele usa git clone localmente para extrair a biblioteca de códigos

    • O desenvolvedor executa o comando no terminal local:
      git clone <仓库地址>
    • Clone a base de código em seu ambiente de desenvolvimento local.
  • Os desenvolvedores criam ramos de desenvolvimento e desenvolvem

    • Crie uma nova ramificação de desenvolvimento localmente, por exemplo.dev
      git checkout -b dev
    • existirdevO desenvolvimento e as modificações do código são realizados na filial.
  • Depois que o desenvolvedor conclui o desenvolvimento, ele o envia ao armazém local

    • Envie alterações de código localmente:
      git add . git commit -m "完成任务描述"
  • Os desenvolvedores solicitam uma solicitação de mesclagem de ramificação (solicitação de mesclagem) na interface do GitLab

    • Envie a ramificação local para o repositório remoto:
      git push origin dev
    • Faça login no GitLab, crie uma nova solicitação de mesclagem na página Solicitações de mesclagem do projeto e selecione o branch de origem e o branch de destino a serem mesclados (geralmentemasteroumain)。
  • O PM verifica os envios e modificações de código no GitLab. Após confirmar que estão corretos, confirme se o branch do desenvolvedor será mesclado no branch principal.

    • PM analisa Merge Request no GitLab, incluindo alterações de código e registros de envio.
    • Se tudo correr bem, o PM aprovará a Solicitação de Mesclagem edevFilial incorporada emmasterfilial.
  • O desenvolvedor confirma que o desenvolvimento foi concluído por Mark feito no GitLab e fecha o Issue.

    • Os desenvolvedores podem adicionar a descrição ao enviar uma solicitação de mesclagemclose #1(em#1é o número do problema), de modo que quando a solicitação de mesclagem for mesclada, o problema relacionado será fechado automaticamente.
    • Se nenhuma instrução para fechar o problema for adicionada à descrição, o desenvolvedor poderá fechar manualmente o problema na página do problema.

 

4. Backup e recuperação do Gitlab

Verifique a versão do sistema e a versão do 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
backup de dados

Abra o arquivo de configuração /etc/gitlab/gitlab.rb e visualize um item de configuração relacionado ao backup:

 

  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 item define o caminho do arquivo de backup padrão. Você pode modificar a configuração e executar. reconfigurar gitlab-ctl ou reiniciar gitlab-ctl Reinicie o serviço para que tenha efeito.

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

Execute o comando de backup para fazer backup

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

Após executar o comando, aparece uma mensagem de aviso:gitlab.rbegitlab-secrets.json O arquivo contém dados confidenciais e não está incluído neste backup. Ao restaurar um backup, o backup desses arquivos precisa ser feito manualmente.

Naturalmente, isto também pode ser feito em conjunto com tarefas planeadas.

Verifique se os arquivos no diretório de backup existem normalmente

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

Defina o tempo de retenção do backup para evitar que os backups sejam realizados todos os dias. Definitivamente, há o risco de o diretório ficar cheio. Abra o arquivo de configuração /etc/gitlab/gitlab.rb e encontre a seguinte configuração:

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

O tempo configurado está em segundos. Se quiser aumentá-lo ou diminuí-lo, você pode configurá-lo diretamente aqui e reiniciar o serviço através de gitlab-ctl restart para que tenha efeito.

Quando o backup for concluído, um pacote tar com a data de hoje será gerado no diretório de backup.

Teste a recuperação de dados

Faça login como usuário administrativo e exclua itens da biblioteca

 

Você precisa interromper o serviço de conexão de dados antes de restaurar:

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

Se for um host construído por Taishin, geralmente não há necessidade de interromper a operação de conexão de dados. Em teoria, não há problema em interromper esses dois serviços. Interromper esses dois serviços é garantir a consistência dos dados. Geralmente, os arquivos de backup no diretório /data/gitlab/backups do servidor antigo são copiados para /data/gitlab/backups no novo servidor para recuperação. Aqui, o ambiente experimental é restaurado nesta máquina.

Observação: permissões: 600 permissões não podem ser restauradas. O ambiente experimental pode ser alterado para 777. Para o ambiente de produção, recomenda-se modificar o proprietário e o grupo.

Após executar o comando, espere um pouco... e digite sim duas vezes para concluir a recuperação.

  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 atenção ao nome do arquivo após BACKUP= aqui. Nas versões mais recentes, o nome completo _gitlab_backup.tarh será adicionado automaticamente, portanto o ponto após o nome do arquivo não pode ser escrito aqui.

Após a conclusão da recuperação, você pode reiniciar todos os serviços ou apenas iniciar os dois serviços de conexão de dados que foram fechados 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: A restauração do gitlab por meio de arquivos de backup deve garantir que as versões do gitlab dos dois hosts sejam consistentes, caso contrário, será avisado que as versões não correspondem.  

 

Atualize ou faça login novamente para ver os dados excluídos.

 

 

5. Configuração de e-mail

Altere-o para seu endereço de e-mail, provedor de serviços de e-mail, código de autorização, porta e outras informações.

  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'

 

Após a configuração, salve e saia e recarregue a configuração.

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

Faça login na página da web e faça login como um usuário aleatório. Usamos o formato de email aleatório que usamos antes. Agora vamos alterá-lo para nosso email real para testar nossa configuração de email.

 

Após fazer as alterações e clicar em Salvar, um pop-up aparecerá. Você precisa acessar seu e-mail e clicar em Confirmar para verificação.

Quando chego à caixa de correio, posso ver que o remetente é uma caixa de correio qq que preenchi na configuração e uma verificação é enviada para a caixa de correio alterada do usuário.

Clicar em Verificar irá pular para uma nova página, onde você poderá ver que o usuário alterou seu endereço de e-mail com sucesso.