GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。<a href="https://docs.gitlab.com/omnibus/README.html" target="_blank" rel="noopener">omnibus</a>方式即是通过gitlab提供的一个打包好的文件,通过类似一键似的安装来完成gitlab-ce企业私有代码库的安装。这里以centos7/rhel7 下的rpm包安装为例。
一、安装依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
systemctl enable postfix && systemctl start postfix
二、gitlab-ce的安装
有外网连接环境的,可以直接通过<a href="https://packages.gitlab.com/gitlab/gitlab-ce/install#bash-rpm" target="_blank" rel="noopener">官方的bash文件</a>进行安装,如果连gitlab比较慢,也可以考虑使用国内的<a href="https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/" target="_blank" rel="noopener">清华大学的源</a> 进行安装。不过清华大学的源相对于gitlab上有些滞后。如果没有外网环境,可以打开:<a href="https://packages.gitlab.com/gitlab/gitlab-ce" target="_blank" rel="noopener">https://packages.gitlab.com/gitlab/gitlab-ce</a> url下载相应版本的包,进行安装。
<br />
# shell 安装
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# 清华大学源安装
# 新建 /etc/yum.repos.d/gitlab-ce.repo,内容为
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
# 再执行
sudo yum makecache
sudo yum install gitlab-ce
无外网的直接下载相应的rpm包,执行rpm -ivh gitlab-ce-xxx.rpm 安装就行了。
三、gitlab.rb配置文件
默认rpm安装好,gitlab的配置文件是/etc/gitlab/gitlab.rb , gitlab配置对外的IP端口、备份目录、备份保存时间、时区、是否启用某些特性等全部在文件配置,这里以修改gitlab对外提供服务的地址为例,配置项见下图:
<img src="https://www.361way.com/wp-content/uploads/2018/06/gitlab-omnibus.png" width="460" height="81" title="gitlab-omnibus.png" alt="gitlab-omnibus.png" />
四、配置启用gitlab
完成配置后,可以通过如下命令配置和启用gitlab:
<br />
gitlab-ctl reconfigure
gitlab-ctl restart
其他常见命令如下:
<br />
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 # 查看日志;
接下来打开相应的URL就会跳出gitlab的主界面了,新的版本现在第一次打开时,会让输入root用户的的新的密码。输入新密码后,可以通过登陆管理projcet。老版本中默认的用户密码是:Username: root 、Password: 5iveL!fe 。
五、更改nginx服务
gitlab-ce omnibus包里默认集成的有nginx,不过很多时候,一台主机上可能不仅仅只跑一个gitlab-ce服务,经常会出现几个服务在一台主机上的情况。比如jenkies、bamboo、jira之类的放在一起,在此之前主机上已经安装有nginx的,也可以使用主机上编译的nginx进行集成,方法如下:
打开/etc/gitlab/gitlab.rb,找到nginx['enable'] = true,更改为nginx['enable'] = false,检查默认nginx配置文件,并迁移至新Nginx服务,其配置文件位置如下:
<br />
/var/opt/gitlab/nginx/conf/nginx.conf #nginx配置文件,包含gitlab-http.conf文件
/var/opt/gitlab/nginx/conf/gitlab-http.conf #gitlab核心nginx配置文件
<br />
六、gitlab服务的构成
<br />
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
<br />