Bootstrap

私有git服务器(gitlab)部署,汉化,项目备份,迁移

本文采用docker容器化部署

获取镜像

docker pull gitlab/gitlab-ce
  • 启动容器
docker run -d  --publish 8443:443 --publish 8080:80 --publish 8022:22 --name gitlab --restart always gitlab/gitlab-ce

在这里插入图片描述

进入容器修改配置

docker exec -it gitlab bash
vi /etc/gitlab/gitlab.rb

在这里插入图片描述
将下面配置粘贴/etc/gitlab/gitlab.rb

external_url 'http://192.168.0.235'  # 这里的ip为宿主机ip或则域名,后期用户点击克隆项目的时候会显示
gitlab_rails['gitlab_ssh_host'] = '192.168.0.235' 
gitlab_rails['gitlab_shell_ssh_port'] = 8022

在这里插入图片描述

重启gitlab服务

gitlab-ctl restart

在这里插入图片描述

访问http://127.0.0.1:8080/

  • 查看初始密码
cat /etc/gitlab/initial_root_password  # 只有gitlab.rb中未配置gitlab_rails['initial_root_password'],密码未被修改时有效

在这里插入图片描述

注意:我看好多文章说提示修改密码,我的并没有不知道为什么,下面我们手动修改

在这里插入图片描述

修改root密码

  • 进入gitlab控制台
gitlab-rails console

在这里插入图片描述

  • 获取root用户,修改密码保存,退出
u=User.find(1)
u.password='12345678'
u.save!
exit
  • 重启gitlab服务
gitlab-ctl restart

在这里插入图片描述

备份

  • gitlab默认的备份保存路径为/var/opt/gitlab/backups,可通过gitlab.rb修改
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
  • 执行备份命令

    ls
    gitlab-backup create  # GitLab 12.1之后版本,GitLab 12.1及之前版本使用gitlab-rake gitlab:backup:create 
    

    在这里插入图片描述 在这里插入图片描述

  • 手动备份gitlab.rb和gitlab-secrets.json

    在这里插入图片描述

定时备份

  • 安装crontab
    修改为阿里云镜像源deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse,提高下载速度
    vi /etc/apt/sources.list  # 修改apt-get镜像源
    
    安装
    apt-get update  # 更新软件源列表
    apt-get install cron
    
  • 设置定时
    crontab -e
    0 20 * * * gitlab-backup create >> /var/log/gitlab/crontab.out 2>&1 &  # 每天晚上8点执行备份
    service cron reload
    

恢复备份

  • 停止相关数据连接服务

    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    
  • 恢复gitlab仓库

    cd /var/opt/gitlab/backups
    gitlab-backup restore BACKUP=1659084022_2022_07_29_15.2.0
    

    执行上面命令,按两次回车即可,或执行下面命令则无需确认

    gitlab-backup restore force=yes BACKUP=1659084022_2022_07_29_15.2.0
    

    yes
    在这里插入图片描述

  • 手动恢复gitlab.rb和gitlab-secrets.json,重新加载配置,重启

    cp gitlab.rb /etc/gitlab/
    cp gitlab-secrets.json /etc/gitlab/
    gitlab-ctl reconfigure
    gitlab-ctl restart
    
  • 报错处理:
    https://www.jianshu.com/p/09a2b0c25ecd
    在这里插入图片描述

项目迁移

此方案比较通用,缺点就是需要一个个的迁移

git clone --mirror ssh://[email protected]:8022/demo/demo.git  demo 
cd demo
git push --mirror ssh://[email protected]:8022/demo/demo.git  //将本地克隆推送到新服务器
git remote set-url origin ssh://[email protected]:8022/demo/demo.git  //将本地远程仓库地址改为新地址

常用命令

docker stop gitlab   # 容器外停止,这里的gitlab 就是我们上一步docker run 当中使用--name 配置的名字
docker restart gitlab  # 容器外重启
docker exec -it gitlab bash  # 进入容器命令行

vi /etc/gitlab/gitlab.rb  # 编辑gitlab配置文件
gitlab-ctl reconfigure  # 容器中应用配置,让修改后的配置生效
gitlab-ctl start  # 开启
gitlab-ctl restart  # 容器中重启服务
gitlab-ctl stop  # 关闭
gitlab-ctl status  # 查看状态

4 汉化gitlab

  • 方式一:有人直接使用非官方到民间镜像(hub.docker.com)然后部署使用,比较麻烦,不推荐
  • 方式二:直接修改本地化设置,根据个人喜好设置自己喜欢的语言
    登陆后点击头像,弹出下拉框,然后点击Preferences选项
    在这里插入图片描述
    在新页面中,点击Preference选项,然后向下滚到,可以看到Localization选项,然后点击Language选项,选择Chinese 简体中文即可修改语言
    在这里插入图片描述
    效果如下:
    在这里插入图片描述
;