GitLab 安装配置
文章目录
介绍
GitLab 是开源的可私有部署的 Git 仓库管理服务器,提供 wiki 与 issues 功能。
系列文章
- GitLab 安装配置 - 狂飙 git.company.com
- Jira 安装配置 - 狂飙 jira.company.com
- Jenkins 安装配置 - 狂飙 ci.company.com
- Mattermost 安装配置 - 狂飙 mattermost.company.com
这一系列文章中的软件是在同一台机器上安装配置的,完整地记录了配置过程。解决了同时部署各种服务之间可能会产生的问题,最终将各种服务整合到一起。每个服务都配置使用域名访问,便于使用。
账号系统未使用 LDAP,因此 Jira 与 GitLab 账号是独立的,Jenkins 与 Mattermost 使用 GitLab 账号登录。
选择
GitLab 有多种安装方式:
- Omnibus package
- Docker
- Vagrant
- 其他 …
由于使用环境限定在公司内,出于性能及维护考虑,选择使用 Omnibus package
直接安装在本地,获取最大性能的同时易于维护、升级、备份。
环境
- CentOS 7.6 1810
- GitLab 11.7.0
访问
IP
- 难以记忆,是一串相当长的数字
- 同一台机器只能开启一个 HTTP 服务,因为无法通过 Host 自动分配到不同服务中
域名
- 方便记忆,长度较短,且浏览器会提供自动完成,方便输入
- 同一台机器可以开启多个 HTTP 服务,只要域名不同即可
DNS 服务选择
- 内网 DNS 出于成本考虑一般使用的是路由器自带的 DNS,但是路由器不稳定,经常出现域名无法解析、解析出错等等。
- 很多机器在配置网络时并未使用内网默认的 DNS,有可能会自行切换到腾迅 DNS、阿里 DNS、114或运营商之类的 DNS,导致无法使用内网 DNS。
- 外网 DNS 可以覆盖所有设置,只是域名可能会比较长。
子域名
只需要简单地添加 A 记录即可,如 git.company.com
,IP 是内网地址如 192.168.1.100
安装
使用包管理器安装时会出现网络问题导致无法下载,可以尝试前往 el/7/gitlab-ee-11.7.0-ee.0.el7.x86_64.rpm - gitlab/gitlab-ee · packages.gitlab.com 下载最新版本并上传到服务器上进行安装。
查找最新版本可以前往 gitlab/gitlab-ee - Packages · packages.gitlab.com,然后查找 el/7
的最新版本(el/7
代表 Enterprise Linux 7,适用于 CentOS 7)
命令
|
|
配置
外部地址
如果之前配置的是 IP 地址,可以在这里修改 EXTERNAL_URL
为域名,然后重启 GitLab
|
|
同服务器共享 Nginx
如果有多个服务如 GitLab、Jenkins、Jira 部署在同一台机器上,那么需要安装公用 Nginx 作转发用,而 GitLab 自带 Nginx,需要先禁用。
官方文档中这里写得比较详细,各个选项可能会有什么问题都介绍了,建议参考。
安装公用 Nginx
vi /etc/yum.repos.d/nginx.repo
|
|
安装并配置开机启动
|
|
禁用 GitLab Nginx
vi /etc/gitlab/gitlab.rb
|
|
需要提前安装好 Nginx 再执行重新配置
gitlab-ctl reconfigure
禁用 SELinux
CentOS 7 默认开启 SELinux,需要关闭 SELinux,否则会因为权限问题无法访问。不管用 unix socket 还是 http port 方式都会有权限问题。
- unix socket
2019/01/30 15:07:07 [crit] 6942#6942: *18 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.5.116, server: git.company.com, request: "GET / HTTP/1.1", upstream: "http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/", host: "git.company.com"
- http port
2019/01/30 16:01:21 [crit] 16410#16410: *1 connect() to 127.0.0.1:8181 failed (13: Permission denied) while connecting to upstream, client: 192.168.5.116, server: git.company.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8181/", host: "git.company.com"
|
|
配置公用 Nginx
复制 https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/nginx/gitlab-omnibus-nginx.conf
内容,将 YOUR_SERVER_FQDN
替换为 git.company.com
域名。
放到 /etc/nginx/conf.d/gitlab.conf
。
systemctl restart nginx
root
首次访问需要设置 root 的密码
存储目录
将默认目录修改为 /data/gitlab/git-data
中。
CI/CD
如果还未开始使用 CI/CD,那么建议禁用全局 CI/CD,否则新建项目中的每一次推送都会触发 CI/CD 构建失败。
禁用 Default to Auto DevOps pipeline for all projects
并保存
Gravatar
由于 Gravatar 服务器在国外,连接较慢,打开页面时会显著降低打开速度,建议禁用 Gravatar enabled
。
禁用 Gravatar enabled
并保存