Dolphin的博客

GitLab在Ubuntu 16.04 LTS部署流程

简介

GitLab是一个可以与Git相结合的开源项目,用于代码仓库管理等。它有社区版本(Community Edition)和企业版本(Enterprise Edition),可以部署在公司的内网。这点对于保密性有要求的项目非常合适。目前集成有如下功能:

  1. Repository access
  2. Administration
  3. Issues
  4. Forks
  5. Code review
  6. Wiki
  7. Merge Requests
  8. Web Editor

部署

这里的部署环境是在Ubuntu 16.04 LTS下,部署的是社区版本(Community Edition),版本号为8.16.4 - f32ee82,输入如下命令下载部署环境检查脚本:

1
2
cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

运行脚本:

1
sudo bash /tmp/script.deb.sh

脚本主要的工作是检查一些需要的软件是否已经安装,操作系统进行更新,可以使用命令vim script.deb.sh打开脚本,查看脚本都做了哪些工作。运行如下命令安装GitLab Community Edition:

1
sudo apt-get install -y gitlab-ce

安装包大概200多MB。通过apt安装时,下载非常慢,直接到GitLab社区版的下载页面下载即可。如果网速还是很慢,比如这里使用uGet下载速度只有几十KB,而GitLab的安装文件是托管在Amazon S3平台上的,Amazon S3对授权的Key有超时机制,超过一定时间会自动断开并拒绝再提供服务,如果没有在规定的时间内下载完毕,就必须重头再来,所以网速较慢的用户下载大文件是很难的(不太可能下载成功),解决此问题,则可以到国内的镜像站点下载安装文件,Amazon的下载URL类似如下:

1
https://packages-gitlab-com.s3-accelerate.amazonaws.com/7/8/ubuntu/package_files/14274.deb?AWSAccessKeyId=AKIAJ74R7IHMTQVGFCEA&Signature=PFBjoOo8UDznbVKds3XUmVnpaCY%3D&Expires=1486519796

首先信任GitLab的GPG公钥:

1
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

在目录/etc/apt/sources.list.d目录下的文件gitlab_gitlab-ce.list中,修改安装的源为清华大学的开源镜像源,注意不同的发行版本写法有细微的区别,这里是Ubuntu 16.04 LTS版本的写法,可以参考这里

1
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main

修改后的文件内容为:

1
2
3
4
5
# this file was generated by packages.gitlab.com for
# the repository at https://packages.gitlab.com/gitlab/gitlab-ce

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ xenial main

输入如下命令安装GitLab Community Edition:

1
2
sudo apt update
sudo apt install -y gitlal-ce

此时下载速度基本在300KB以上。安装完毕后,输入如下命令配置GitLab:

1
sudo gitlab-ctl reconfigure

GitLab默认使用的是80端口,但是在自己的机器上,80端已经被Nginx占用,所以需要修改GitLab的默认端口。使用如下命令修改:

1
sudo vim /etc/gitlab/gitlab.rb

这里GitLab的端口修改为8081,如下片段所示:

1
2
3
4
5
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://hldev-100:8081'

修改后运行sudo gitlab-ctl reconfigure命令使之生效。除了这个端口外,还有一个unicorn用的端口,默认是8080,如果8080端口被其他程序占用(在自己的机器上,8080端口被Jenkins占用了)。那么unicorn就会无法启动,显示为502错误,”GitLab is not responding”。如下片段所示:

1
2
3
4
5
6
7
Whoops, GitLab is taking too much time to respond.

Try refreshing the page, or going back and attempting the action again.

Please contact your GitLab administrator if this problem persists.

Go back

还是在/etc/gitlab/gitlab.rb文件中,将端口修改为8082,如下片段所示。

1
unicorn['port'] = 8082

再次运行配置文件生效命令。访问地址http://hldev-100:8081即可。首页如下图所示:

账号设置

GitLab默认的账号如下:

1
2
Username: root
Password: 5iveL!fe

首次登录时需要修改密码。

参考资料:

How To Install and Configure GitLab on Ubuntu 16.04

Gitlab Community Edition 镜像使用帮助

GitLab安装配置