安装并配置gitlab

简介

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。

团队成员可以利用内置的简单聊天程序(Wall)进行交流。

它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab分为社区版和企业版。企业版是要钱的、社区版是免费的,不但能建立免费的私有仓库而且没有数量上限,参与人员也没有数量限制,还能设置成员的权限,甚至细致到具体某条分支的权限,以及强大的工作流等等。
所以我这里是安装的社区版

安装

安装社区版,GitLab CE 版本:11.3.13
安装一些必要的依赖:

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
安装gitlab
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce-11.3.13-ce.0.el7.x86_64
配置域名访问
vi /etc/gitlab/gitlab.rb
external_url 'http://gitlab.kevin.com'  //修改成你的域名
启动gitlab,并使配置生效
gitlab-ctl reconfigure
gitlab-ctl start

添加dns解析,使你能通过域名解析到gitlab的地址

使用浏览器访问
http://gitlab.kevin.com 

首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面.
默认的管理员账号是root,如果你想更改默认管理员账号,请输入上面设置的新密码登录系统后修改帐号名.

配置SMTP邮箱

如果您不喜欢使用自带的sendmail服务收发邮箱,希望通过SMTP服务器而不是通过Sendmail发送应用程序电子邮件,请将以下配置信息添加到 /etc/gitlab/gitlab.rb并运行gitlab-ctl reconfigure。

vi /etc/gitlab/gitlab.rb
#添加
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"

以上是腾讯企业邮箱的配置文件,如果你用的是169或者gmail之类的邮箱,你可以查看官方的配置文件进行对应的修改。
配置完成以后

测试邮箱是否配置成功
gitlab-rails console  //进入控制台
irb(main):002:0>Notify.test_email('xx@qq.com', '邮件标题', '邮件正题').deliver_now
gitlab-ctl reconfigure    //使配置生效
gitlab-ctl restart   //重启

查看是否收到测试邮箱

补充

也是我的笔记

gitlab的服务安装位置
主配置文件: /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
GitLab由以下服务构成
nginx: 静态web服务器
gitlab-shell: 用于处理Git命令和修改authorized keys列表
gitlab-workhorse: 轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。

常用命令

# 查看版本
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
# 启动所有 gitlab 组件:
gitlab-ctl start
# 停止所有 gitlab 组件:
gitlab-ctl stop
# 停止所有 gitlab postgresql 组件:
gitlab-ctl stop postgresql
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 重启所有 gitlab 组件:
gitlab-ctl restart
# 重启所有 gitlab gitlab-workhorse 组件:
gitlab-ctl restart  gitlab-workhorse
# 查看服务状态
gitlab-ctl status
# 生成配置并启动服务
gitlab-ctl reconfigure 

日志

# 实时查看所有日志
gitlab-ctl tail
# 实时检查redis的日志
gitlab-ctl tail redis

# 实时检查postgresql的日志
gitlab-ctl tail postgresql

# 检查gitlab-workhorse的日志
gitlab-ctl tail gitlab-workhorse

# 检查logrotate的日志
gitlab-ctl tail logrotate

# 检查nginx的日志
gitlab-ctl tail nginx

# 检查sidekiq的日志
gitlab-ctl tail sidekiq

# 检查unicorn的日志
gitlab-ctl tail unicorn

gitlab的备份

备份

修改/etc/gitlab/gitlab.rb:
找到gitlab_rails['backup_path'] = '/data/backups'
后面的路径是备份文件的路径
删除前面的#

gitlab-ctl reconfigure
备份命令
gitlab-rake gitlab:backup:create

该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分。

恢复
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 指定恢复文件,会自动去备份目录找。确保备份目录中有这个文件。
# 指定文件名的格式类似:1499242399_2017_07_05_9.2.6,程序会自动在文件名后补    上:“_gitlab_backup.tar”
# 一定按这样的格式指定,否则会出现 The backup file does not exist! 的错误
gitlab-rake gitlab:backup:restore BACKUP=1499242399_2017_07_05_9.2.6
# 启动Gitlab
gitlab-ctl start
文章目录
  1. 1. 简介
  2. 2. 安装
    1. 2.1. 安装gitlab
    2. 2.2. 配置域名访问
    3. 2.3. 启动gitlab,并使配置生效
    4. 2.4. 使用浏览器访问
    5. 2.5. 配置SMTP邮箱
    6. 2.6. 测试邮箱是否配置成功
  3. 3. 补充
    1. 3.1. gitlab的服务安装位置
    2. 3.2. GitLab由以下服务构成
  4. 4. 常用命令
  5. 5. 日志
  6. 6. gitlab的备份
    1. 6.1. 备份
    2. 6.2. 备份命令
    3. 6.3. 恢复