GITLAB搭建

前言

GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务,GitLab 是可以部署到自己的服务器 上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发
GitLab 有点吃资源,我的 1 核 2G 服务器自安装后巨卡无比,建议在配置更好的服务器或者直接在自己的虚拟上测试,会方便很多

安装相关依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 前两个是ssh服务,后面是邮件服务,gitlab需要发送邮件
yum -y install openssh-server openssh-clients postfix

# 这个和gitlab的安装有关
yum -y policycoreutils policycoreutils-python

# 启动sshd服务
systemctl enable sshd && sudo systemctl start sshd

# 修改postfix配置文件,启动并设置开机自启,修改内容在括号里面
vim /etc/postfix/main.cf
(
inet_interfaces = all
inet_protocols = ipv4
)
systemctl start postfix
systemctl enable postfix

# 有防火墙注意关闭防火墙,没有firewalld建议安装, 82是我的端口号
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

下载镜像文件和安装

建议去清华大学镜像站下载,地址:GITLAB 社区版地,下载 rpm 安装包

1
rpm -ivh gitlab-ce-12.9.1-ce.0.el6.x86_64.rpm

出现以下界面代表安装成功了
image.png

GITLAB 命令

1
2
3
4
5
6
7
8
9
# 启动gitlab
gitlab-ctl start

# 停止gitlab
gitlab-ctl stop

# 查看gitlab状态
gitlab-ctl status

修改配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 编辑gitlab配置文件
vim /etc/gitlab/gitlab.rb

修改项开始===>
该地址为访问GITLAB地址,需要加上前面的端口号
external_url 'http://该服务器IP:82'
# 该配置是为了防止和8080端口冲突,个人测试尤其注意,如果你单独服务来部署,当我没说
unicorn['port'] = 8282
gitlab_workhorse['auth_backend'] = "http://localhost:8282"
<===修改项结束

# 重新配置
gitlab-ctl reconfigure

# 重启gitlab
gitlab-ctl restart

问题记录

  • rpm 安装失败
    • 这种情况,一般都是以来没安装好导致的,需要保证安装之前policycoreutils openssh-server openssh-clients postfix这四个都安装好了
  • policycoreutils-python安装失败,执行yum install policycoreutils-python -y 提示无该软件

这种情况我遇到了,是因为 centOS8 该软件已经修改为新的名称所致,帖子在这

  • postfix启动失败

一般都是没加括号里面的配置,加上之后重新启动即可

  • 访问直接是无响应,404

这种情况一般都是网络限制,检查防火墙限制

1
2
3
4
# 查看防火墙状态
firewall-cmd --state
# 查看防火墙开放端口
firewall-cmd --permanent --zone=public --list-ports

如果是云服务器的话,安全组配置需要添加

  • 以上都完成了访问 GITLAB 还是 502

image.png
建议多等等 QAQ

卸载 GITLAB

  1. 停止并卸载
1
2
3
4
5
# 停止gitlab
sudo gitlab-ctl stop

# rpm卸载gitlab
sudo rpm -e gitlab-ce
  1. 杀死守护进程

image.png

1
kill -9 1220
  1. 删除 gitlab 文件
1
find / -name gitlab|xargs rm -rf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@iZm5e5d84aus1oanps2omoZ opt]# gitlab-ci-multi-runner register
Running in system-mode.

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://114.215.86.43:82/
Please enter the gitlab-ci token for this runner:
9aNqD5sETsx4swx7hbGW
Please enter the gitlab-ci description for this runner:
[iZm5e5d84aus1oanps2omoZ]: zoombar-runner
Please enter the gitlab-ci tags for this runner (comma separated):
deploy
Whether to run untagged builds [true/false]:
[false]: false
Whether to lock Runner to current project [true/false]:
[false]: false
Registering runner... succeeded runner=9aNqD5sE
Please enter the executor: shell, docker, docker-ssh, parallels, ssh, virtualbox, docker+machine, docker-ssh+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

配置 GITLAB HTTPS 域名访问

证书设置

将创建好的证书放到/etc/gitlab/ssl目录下,证书获取详见我的另外一篇博客https://www.yuque.com/guyuefangyuan/blog/og9wzl

修改配置文件

找到/etc/gitlab/gitlab.rb文件,涉及到的配置修改项如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 访问的链接
external_url 'https://gitlab.zoombar.fun'

# nginx开启
nginx['enable'] = true
# 访问http重定向到http
nginx['redirect_http_to_https'] = true
# 重定向端口
nginx['redirect_http_to_https_port'] = 80

# 证书路径
nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.cer"
# key路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/cert.key"

更新 Gitlab 配置

1
2
# 重新配置
gitlab-ctl reconfigure

修改 nginx 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 修改nginx配置文件
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

#添加了一栏 ssl on
server {
listen *:443 ssl http2;


server_name gitlab.zoombar.fun;
server_tokens off; ## Don't show the nginx version number, a security best practice
ssl on;

## Increase this if you want to upload large attachments
## Or if you want to accept large git objects over http
client_max_body_size 0;

## Strong SSL Security
## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/
ssl_certificate /etc/gitlab/ssl/cert.cer;
ssl_certificate_key /etc/gitlab/ssl/cert.key;
...
...

重启 GitLab

1
gitlab-ctl restart

相关

作者

孙博文

发布于

2020-03-30

更新于

2021-07-18

许可协议

评论