当前位置:   article > 正文

Linux安装GitLab

linux安装gitlab

一、服务器配置清华大学的镜像地址

清华镜像源官方使用文档:gitlab-ce | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

vi /etc/yum.repos.d/gitlab-ce.repo
  1. 配置gitlab-ce.repo文件
  1. [gitlab-ce]
  2. name=Gitlab CE Repository
  3. baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
  4. gpgcheck=0
  5. enabled=1

二、下载安装GitLab

本文为ContOS7.5系统。默认安装位置为:/var/opt/gitlab

  1. sudo yum makecache
  2. sudo yum install gitlab-ce

下载后出现如下图

三、修改GitLab配置文件

  1. 修改GitLab的访问地址和端口
vi  /etc/gitlab/gitlab.rb

  1. 访问地址,如果出现502的问题,基本上是端口被占用,需要修改puma['port']=8080。默认是8080端口,修改为其他的端口,且不能和gitlab访问端口一样。

error:badgateway: failed to receive response: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket

  1. 减少GitLab的服务器内存压力,同样也需要修改配置文件

重加载gitlab配置

sudo gitlab-ctl reconfigure

启动gitlab

sudo gitlab-ctl start

四、root忘记密码,修改管理员root密码

  1. 到GitLab安装目录
cd /opt/gitlab/bin/
  1. 执行
sudo  gitlab-rails console -e production
  1. 查看用户
  1. user=User.where(username: 'root').first
  2. user=User.where(id:1).first
  1. 修改重置密码
user.password='你的密码'

再次确认密码

user.password_confirmation="你的密码"
  1. 保存,一定要加感叹号。返回true为保存成功
user.save!

五、设置GitLab为中文

六、定时备份代码

1.为了能够备份和恢复,请确保你的系统上安装了Rsync

sudo yum install rsync

2.配置了与备份目标机器之间的免密认证,修改gitlab配置文件

vim /etc/gitlab/gitlab.rb
  1. #指定备份后数据存放的路径、权限、时间配置
  2. gitlab_rails['manage_backup_path'] = true #292行 开启备份功能
  3. gitlab_rails['backup_path'] = "/opt/gitlab_backups" #293行 指定备份的路径
  4. gitlab_rails['backup_archive_permissions'] = 0644 #296行 备份文件的权限
  5. gitlab_rails['backup_keep_time'] = 7776000 #301行 备份保留时间(保留90天 单位:秒

注意备份路径,备份主机要与本机一致,修改后记得执行gitlab-ctl reconfigure

3.创建备份目录并授权

mkdir /opt/gitlab_backups && chown -R git.git /opt/gitlab_backups/

4.刷新配置

gitlab-ctl reconfigure

5.手动配置

 gitlab-backup create

ps:这里提示 gitlab.rb 和 gitlab-secrets.json 包涵敏感数据需要手动备份,在配置自动备份脚本中配置拷贝

6.编写备份脚本

vim backups.sh
  1. #!/usr/bin/bash
  2. #获取当前时间
  3. locale_date=`date +%Y-%m-%d.%H.%M.%S`
  4. #远端IP备份主机ip
  5. backup_host=127.0.0.1
  6. #本地备份路径
  7. backup_path=/mnt/data/gitlab/gitlab_backups
  8. #日志路径
  9. backup_log=/mnt/data/gitlab/gitlab_backups/gitlab_back.log
  10. #判断/mnt/data/gitlab/gitlab_backups目录是否存在,否则创建
  11. if [ ! -d ${backup_path} ]; then
  12. mkdir ${backup_path}
  13. fi
  14. #删除30天之前的备份数据
  15. find ${backup_path} -mtime +5 -name "*" -exec rm -rf {} \;
  16. #CRON=1 环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出
  17. #BACKUP=${locale_date}改变backup文件名称 例: 2022-06-15_11:22:52_gitlab_backup.tar
  18. /opt/gitlab/bin/gitlab-backup create BACKUP=${locale_date} CRON=1
  19. if [ $? -eq 0 ];then
  20. echo "${locale_date} ${backup_path}_gitlab_backup.tar 备份创建成功." >> ${backup_log}
  21. else
  22. echo "${locale_date} ${backup_path}_gitlab_backup.tar 备份创建失败." >> ${backup_log}
  23. exit 1
  24. fi
  25. #拷贝配置文件至本地备份目录/mnt/data/gitlab/gitlab_backups
  26. cp /etc/gitlab/gitlab-secrets.json ${backup_path}/${locale_date}_gitlab-secrets.json >> ${backup_log}
  27. cp /etc/gitlab/gitlab.rb ${backup_path}/${locale_date}_gitlab.rb >> ${backup_log}
  28. #同步本地 /opt/gitlab_backups目录到远端/opt/目录下
  29. rsync -avzPrt --delete ${backup_path} root@${backup_host}:/opt/ >> ${backup_log}

7.加入定时任务

crontab -e #添加定时任务
0 0,6,12,18 * * * /bin/bash //mnt/data/gitlab/backups.sh > /dev/null 2>&1

8.创建备份恢复脚本

vim restore.sh
  1. #!/bin/bash
  2. local_ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
  3. echo -e "本机IP:${local_ip} \n"
  4. echo -e "\033[36m发现以下下备份文件:\n \033[0m"
  5. ls -lt /mnt/data/gitlab/gitlab_backups/*.tar|awk -F '/' '{print $4}'
  6. echo -e "\n\033[36m请输入要恢复的文件或时间节点:\033[0m"
  7. read input
  8. gitlab_backup=${input%%_*}
  9. gitlab_rb=/mnt/data/gitlab/gitlab_backups/${gitlab_backup}_gitlab.rb
  10. secrets_json=/mnt/data/gitlab/gitlab_backups/${gitlab_backup}_gitlab-secrets.json
  11. echo -e "\n\033[36m即将恢复以下文件:\033[0m"
  12. echo "/opt/gitlab_backups/${gitlab_backup}_gitlab_backup.tar"
  13. echo ${gitlab_rb}
  14. echo ${secrets_json}
  15. sed -i "s#\(^external_url .*\)#external_url 'http://${local_ip}' #g" ${gitlab_rb}
  16. chown -Rf git:git /opt/gitlab_backups
  17. #/bin/cp -f /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb-`date +%Y-%m-%d_%H_%M_%S`-backup
  18. #/bin/cp -f /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json-`date +%Y-%m-%d_%H_%M_%S`-backup
  19. #/bin/cp -f ${gitlab_rb} /etc/gitlab/gitlab.rb
  20. #/bin/cp -f ${secrets_json} /etc/gitlab/gitlab-secrets.json
  21. #/opt/gitlab/bin/gitlab-ctl reconfigure
  22. echo -e "\n\033[36m停止数据库服务\033[0m"
  23. /opt/gitlab/bin/gitlab-ctl stop unicorn
  24. /opt/gitlab/bin/gitlab-ctl stop puma
  25. /opt/gitlab/bin/gitlab-ctl stop sidekiq
  26. echo -e "\n\033[36m开始恢复${gitlab_backup}备份:\033[0m"
  27. /opt/gitlab/bin/gitlab-backup restore BACKUP=${gitlab_backup}
  28. echo -e "\n\033[36m备份本机配置文件\033[0m"
  29. /bin/cp -f /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb-`date +%Y-%m-%d_%H_%M_%S`-backup
  30. /bin/cp -f /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json-`date +%Y-%m-%d_%H_%M_%S`-backup
  31. ls -lt /etc/gitlab/|grep `date +%Y-%m-%d_%H_%M_%S`
  32. echo -e "\n\033[36m覆盖本机配置文件\033[0m"
  33. /bin/cp -f ${gitlab_rb} /etc/gitlab/gitlab.rb
  34. /bin/cp -f ${secrets_json} /etc/gitlab/gitlab-secrets.json
  35. echo "/etc/gitlab/gitlab.rb"
  36. echo "/etc/gitlab/gitlab-secrets.json"
  37. echo -e "\n\033[36m重新加载配置文件并重启服务\033[0m"
  38. /opt/gitlab/bin/gitlab-ctl reconfigure
  39. /opt/gitlab/bin/gitlab-ctl restart

七、常用命令

1、停止服务

sudo gitlab-ctl stop

2、启动服务

sudo gitlab-ctl start

3、重启gitlab服务

sudo gitlab-ctl restart

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/684042
推荐阅读
相关标签
  

闽ICP备14008679号