GitLab安装实践

一 前言

至从版本管理从SVN切换至Git后,对Git简直爱不释手,不仅每天在使用Git,平时也会逛Git相关的网站,如GitHub,Gitlab。就连自己的博客也是基于Git来搭建的,今天就为大家介绍一个非常好用的Git项目仓库管理工具,也就是今天的主角-GitLab

二 GitLab是什么?

首先我们需要认识一下,GitLab是什么,维基百科中是这么描述的:

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与GitHub类似的功能,能够浏览代码,管理缺陷和注释,可以管理团队对仓库的方法,它非常易于浏览器提交过的版本并提供一个历史库。

对Git/GitHub比较熟悉的小伙伴,对上面的介绍应该比较容易理解,如果刚从SVN转过来的小伙伴,也可以理解为Git是中的VisualSVN Server,但是比VisualSVN Server更强大,说来这么多,怎么安装呢?别急,接着看。

三 安装

我这里安装的系统为: Ubuntu 14.04LTS。
GitLab分为在线安装与离线安装。由于GitLab依赖openSSH,首先我们需要安装openssh-server,命令如下:

sudo apt-get install curl openssh-server ca-certificates postfix -y

3.1 在线安装
  1. 添加Gitlab package server
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  1. 安装Gitlab
sudo apt-get install gitlab-ce

如下图所示就表示已经安装完成

gitlab 数据库是什么 gitlab干嘛的_github

  1. 配置启动Gitlab
sudo gitlab-ctl reconfigure

启动后,会显示很多日志,到最后,如下图所示时,就表示启动没有问题:

gitlab 数据库是什么 gitlab干嘛的_管理_02

此时就能通过http://hostname进行访问了,其中hostname,为系统的系统主机名称,ubuntu可以通过在命令行中执行

hostname

如下图:

gitlab 数据库是什么 gitlab干嘛的_github_03

例如访问链接: http://andyqian/,如图所示:

gitlab 数据库是什么 gitlab干嘛的_gitlab 数据库是什么_04

3.2 离线安装

手动下载软件包链接: https://packages.gitlab.com/gitlab/gitlab-ce,选择合适的包后安装

dpkg -i gitlab-ce-XXX.deb

例如: https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_9.4.3-ce.0_amd64.deb 重新加载配置并启动:

sudo gitlab-ctl reconfigure

四 修改root用户密码

默认用户为root用户,其为超级管理员权限,个人建议一开始就修改root用户密码,忘记密码也可以使用该方法:
打开console

sudo gitlab-rails console production;

查找需要修改的用户(id:1的用户为root用户)

user = User.where(id:1).first;

设置密码&确认密码

user.password = 'your_password'
user.password_confirmation = 'your_password'

保存修改

user.save!

重新加载配置

sudo gitlab-ctl reconfigure

重启服务

sudo gitlab-ctl restart

gitlab 数据库是什么 gitlab干嘛的_管理_05

(ps:该root密码纯粹为来演示,不考虑安全性,建议在平常使用时考虑root密码的安全性)执行完成后就可以使用新密码登录了,登录成功后的界面如下图所示:

gitlab 数据库是什么 gitlab干嘛的_gitlab 数据库是什么_06

五 常用命令

1
2
3
4
5
6
sudo gitlab-rails console production;  //打开控制台  
sudo gitlab-ctl tail;                   //查看日志,包括nginx,redis等   
sudo gitlab-ctl start;                  //开启gitlab服务   
sudo gitlab-ctl stop;                   //关闭gitlab服务   
sudo gitlab-ctl restart;                //重启gitlab服务   
sudo gitlab-ctl reconfigure             //重新加载配置

六 邮件通知配置

Gitlab支持邮件功能,默认是不启用状态,我们可以通过在/etc/gitlab/gitlab.rb文件中配置,即可进行邮件的通知功能,邮件功能的使用场景主要有:
用户注册,密码重置,事件通知等。(笔者在这里使用的是163邮箱),在/etc/gitlab/gitlab.rb文件中配置如下:

### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxxx@163.com'
gitlab_rails['gitlab_email_display_name'] = 'you nickname'
gitlab_rails['gitlab_email_reply_to'] = 'xxxx@163.com'
gitlab_rails['gitlab_email_subject_suffix'] = ''

以上配置仅仅是开启邮件通知功能,以及发送邮件的一些简单配置,接下来,我们需要配置邮件服务器(SMTP),来进行发送邮件,如下所示:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxxx@163.com"
gitlab_rails['smtp_password'] = "you password"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false

其中:
smtp_user_name 为邮箱名
smtp_password: 登录密码
smtp_port: 如果是163邮箱则为固定值 25
注意: 该邮箱需要支持smtp协议,才能进行邮件的正常收发。
gitlab支持多种邮箱配置,具体配置参考链接SMTP配置

七 参考链接

GitLabSMTP配置

八 小结

在本篇文章中,主要介绍了Gitlab安装的步骤,以及一些注意事项,在后面的文章中,介绍如何汉化,以及如何通过日志分析问题,并解决问题。