一、GitLab 简介

GitLab 是一个利用Ruby on Rails 开发的开源版本控制系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

开源中国代码托管平台 ​​码云​​ 就是基于GitLab项目搭建。


二、GitLab 安装和配置

GitLab由以下服务构成

  • nginx: 静态web服务器
  • gitlab-shell: 用于处理Git命令和修改authorized keys列表
  • gitlab-workhorse: 轻量级的反向代理服务器
  • logrotate:日志文件管理工具
  • postgresql:数据库
  • redis:缓存数据库
  • sidekiq:用于在后台执行队列任务(异步执行)
  • unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。



下载安装极狐GitLab 免费版

官方Linux安装包(推荐)​​https://gitlab.cn/install/​

通过单个安装包(Omnibus)进行安装,安装包内已捆绑了运行极狐GitLab 所需的所有服务与工具。

gitlab(极狐)安装与配置文档_gitlab

1. 安装和配置必须的依赖项

在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。

sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

(可选)下一步,安装 Postfix 以发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装极狐GitLab 后​​配置外部 SMTP 服务器​​。

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

在安装 Postfix 的过程中可能会出现一个配置界面,在该界面中选择“Internet Site”并按下回车。把“mail name”设置为您服务器的外部 DNS 域名并按下回车。如果还有其它配置界面出现,继续按下回车以接受默认配置。

2. 下载/安装极狐GitLab

配置极狐GitLab 软件源镜像。

curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash

接下来,安装极狐GitLab。确保您已正确​​设置您的 DNS​​,并更改 ​​​https://gitlab.example.com​​ 为您要访问极狐GitLab 实例的 URL。安装包将在该 URL 上自动配置和启动极狐GitLab。

对于 ​​https​​​ 站点,极狐GitLab 将使用 Let's Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 ​​http://​​​(不带​​s​​)。

如果您想为初始管理员用户(​​root​​​)指定自定义密码,请查看​​文档​​。如果未指定密码,将自动生成随机密码。

执行如下命令开始安装:

sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-jh

设置自己的域名:gitlab.example.com

3. 访问极狐GitLab 实例并登录

除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小时后,此文件会被第一次 ​​gitlab-ctl reconfigure​​​ 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 ​​root​​ 登录。


4、配置邮箱

如果你不想用服务器自带的postfix服务来发邮件,可以改用SMTP服务。

修改GitLab邮件服务配置(gitlab.rb文件),使用腾讯企业邮箱的SMTP服务器,填写账号和密码

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxx"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = 'plain'
gitlab_rails['smtp_enable_starttls_auto'] = true


三、其他相关命令

sudo gitlab-ctl start    # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
gitlab-rake cache:clear RAILS_ENV=production 清理缓存

# 查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

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

# 实时查看日志
gitlab-ctl tail

# 数据库关系升级
gitlab-rake db:migrate

# 清理redis缓存
gitlab-rake cache:clear

# 升级GitLab-ce 版本
yum update gitlab-ce

# 升级PostgreSQL最新版本
gitlab-ctl pg-upgrade

迁移修改
[root@localhost ~]# vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
[root@localhost ~]# gitlab-ctl restart
主配置文件: /etc/gitlab/gitlab.rb
GitLab 文档根目录: /opt/gitlab
默认存储库位置: /var/opt/gitlab/git-data/repositories
GitLab Nginx 配置文件路径: /var/opt/gitlab/nginx/conf/gitlab-http.conf
Postgresql 数据目录: /var/opt/gitlab/postgresql/data

参考链接:​​https://gitlab.cn/install/​

​​​​https://docs.gitlab.cn/omnibus/installation/​

链接:https://www.jianshu.com/p/56541f6c01a5