gitlab安装

Posted by Epoch Blog on December 18, 2021

Gitlab概述

1.Gitlab介绍

Gitlab一个git的开源的版本管理系统,实现一个托管的Git项目仓库,使用web界面进行访问公开或者私有项目。

官方的文档地址:

文档地址

2.Gitlab服务构成

Nginx:静态web服务器。

gitlab-shell:用于处理Git命令和修改authorized keys列表。

gitlab-workhorse: 轻量级的反向代理服务器。

logrotate:日志文件管理工具。

postgresql:数据库。

redis:缓存数据库。

sidekiq:用于在后台执行队列任务(异步执行)。

Gitlab的安装部署(主机方式)

至少有4GB的RAM运行GitLab。

1.通过rpm包进行安装

将对应版本的gitlab-ce下载到本地后,直接yum安装即可

1
yum install -y gitlab-ce-XXXX.rpm

2.配置yum源进行安装

在 /etc/yum.repos.d/ 下新建 gitlab-ce.repo,写入如下内容:

1
2
3
4
5
6
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key

然后创建cache,再直接安装gitlab-ce

1
2
3
4
5
6
7
yum makecache

yum install -y  gitlab-ce-13.6.1
#安装指定版本

yum install gitlab-ce -y --nogpgcheck
# 如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证

3.Gitlab的配置

配置文件地址 /etc/gitlab/gitlab.rb

1
2
3
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.19.134:8099'
puma['port'] = 8099

关于其他参数的配置

从GitLab 13.0开始,Puma 是认的 Web服务器,并且 Unicorn 认情况下处于禁用状态

文档地址:

https://docs.gitlab.com/ee/administration/operations/puma.html

修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效。

1
gitlab-ctl reconfigure
  1. Gitlab常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
gitlab-ctl start         # 启动所有 gitlab 组件
gitlab-ctl stop          # 停止所有 gitlab 组件
gitlab-ctl restart       # 重启所有 gitlab 组件
gitlab-ctl status        # 查看服务状态

gitlab-ctl reconfigure   # 启动服务
gitlab-ctl show-config   # 验证配置文件

gitlab-ctl tail          # 查看日志

gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab

vim /etc/gitlab/gitlab.rb # 修改默认的配置文件

Gitlab安装部署(Docker方式)

1.gitlab镜像拉取

gitlab的镜像官网地址如下:

https://hub.docker.com/r/gitlab/gitlab-ce/tags

1
2
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce

2.运行gitlab镜像

1
2
3
4
5
6
7
$ docker run -d  -p 443:443 -p 80:80 -p 30022:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

这里将gitlab中22端口映射到了30022端口,将数据目录映射到了外层

3.配置gitlab

第二步虽然起来了,但是仍然无法访问,需要修改配置参数,文件已映射,/home/gitlab/config/gitlab.rb

1
2
3
4
5
6
7
8
9
10
# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb

# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.19.134'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.19.134'
gitlab_rails['gitlab_shell_ssh_port'] = 30022 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出

如需修改端口如下

1
2
3
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.19.134:8099'
puma['port'] = 8099

重启重启gitlab容器

1
$ docker restart gitlab

此时等待一会,即可,ssh端口也是30022端口 http://IP:端口

Gitlab密码忘记设置

Gitlab第一次访问或,需要设置root的密码,即账号为root,如不小心把密码忘了,参考如下

1
2
3
4
5
6
进入 GitLab 控制台
gitlab-rails console -e production
执行命令: user = User.where(id: 1).first,此 user 则表示 root 用户
执行命令:user.password = 'secret_pass’修改密码, user.password_confirmation = ‘secret_pass’ 确认密码
执行命令: user.save!
执行命令: exit