[分享] 极狐Gitlab修改默认的目录

极狐Gitlab修改默认的数据及日志路径

Gitlab 默认的数据目录是/var/opt/gitlab,该目录下包含多种数据:

  1. postgresql数据:/var/opt/gitlab/postgresql/data

  2. patroni数据:/var/opt/gitlab/patroni/data

  3. gitaly数据:/var/opt/gitlab/git-data

  4. 用户上传数据:/var/opt/gitlab/gitlab-rails/upload

  5. 备份数据:/var/opt/gitlab/backups

  6. builds数据(job运行时日志):/var/opt/gitlab/gitlab-ci/builds

  7. 其它数据(lfs, artifacts等):/var/opt/gitlab/gitlab-rails/shared

Gitlab默认的日志目录是/var/log/gitlab,该目录下会为各个组件存放日志。

修改数据目录

方式一:修改所有数据目录

  1. 停止服务:gitlab-ctl stop

  2. 将旧数据目录改名为新目录:mv /var/opt/gitlab /data/gitlab

  3. 以软链接的方式指向默认目录:ln -s /data/gitlab /var/opt/gitlab

  4. 启动服务:gitlab-ctl start

方式二:修改某个数据目录

修改postgresql目录

操作前需要将数据拷贝的新目录

  1. 停止服务:gitlab-ctl stop

  2. 更新配置postgresql['dir']到指定的新位置

  3. 执行gitlab-ctl reconfigure

  4. 启动服务:gitlab-ctl start

修改gitaly目录

操作前需要将数据拷贝的新目录

参考文档:Configuration options for the GitLab Linux package | GitLab

修改以下配置,指定到新目录


git_data_dirs({

'default' => {

'path' => '/data/opt/gitlab/git-data'

},

})

修改用户上传数据目录

操作前需要将数据拷贝的新目录

修改以下配置,指定到新目录


gitlab_rails['uploads_directory'] = "/data/storage/uploads"

修改builds目录

操作前需要将数据拷贝的新目录

该目录主要存储job运行时的日志。

修改以下配置,指定到新目录


gitlab_ci['builds_directory'] = '/data/opt/gitlab/gitlab-ci/builds'

修改备份目录

操作前需要将数据拷贝的新目录

修改以下配置,指定到新目录


gitlab_rails['backup_path'] = '/data/backups'

统一修改lfs、artifacts等数据目录

操作前需要将数据拷贝的新目录

修改以下配置,指定到新目录


gitlab_rails['shared_path'] = '/data/opt/gitlab/gitlab-rails/shared'

修改日志目录

方式一:修改所有日志目录

  1. 停止服务:gitlab-ctl stop

  2. 将旧日志目录改名为新目录:mv /var/log/gitlab /data/log/gitlab

  3. 以软链接的方式指向默认目录:ln -s /data/logs/gitlab /var/log/gitlab

  4. gitlab-ctl reconfigure && gitlab-ctl restart

方式二:修改单个日志目录

不推荐使用该,建议直接修改所有日志目录

修改rails日志目录

  1. 拷贝gitlab-rails目录到新的日志目录,删除gitlab-rails目录

  2. 以软连接的方式指向旧目录:ln -s /data/log/gitalb/gitlab-rails /var/log/gitlab/gitlab-rails。(gitlab-ctl tail 会默认读取/var/log/gitlab里的日志,故需要创建软链接)

  3. 修改配置:


gitlab_rails['log_directory'] = "/data/log/gitlab/gitlab-rails"

  1. gitlab-ctl reconfigure && gitlab-ctl restart

其它日志目录的修改方式类似,不再赘述。

TroubleShooting

修改目录后,并且服务也重启过,但是一直报目录权限问题

注意检查新的目录是否正常,检查系统umask值,是否创建的新目录权限比较低。

比如/data/log/gitlab,检查datalog是否为0755的权限