最近公司要使用gitlab做配置管理,就顺手把安装步骤做个记录。

一开始想安装社区版,但是安装成了企业版。看了官方文档,发现企业版不买license的话可以直接当社区版使用,功能是一样的,想买license的时候还可以一键使用,也就是官方更推荐企业版,那就企业版喽。


环境准备:一台CentOS7系统的虚拟机,需联网。

官方安装文档:https://about.gitlab.com/install/#centos-7

1. Install and configure the necessary dependencies

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

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

由于是一台刚安装好的机器,一开始就遇到了问题,“Could not resolve host: mirrorlist.centos.org”,这个一般是DNS网络配置问题,很好解决

vi /etc/resolv.conf

在这个文件中添加

nameserver 8.8.8.8
nameserver 202.106.0.20

重启网络服务

/etc/init.d/network restart

看到一串 [ ok ] ,就是执行成功,可以重新尝试了。

2. Add the GitLab package repository and install the package

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

这里执行时间会长一些。http://gitlab.example.com要换成你自己的IP,如果忘记换掉,可以通过下面方法修改:

vi /etc/gitlab/gitlab.rb

在这个文件中找到如下内容,修改url

external_url "http://gitlab.example.com"

修改后,执行下面命令使变更生效:

sudo gitlab-ctl reconfigure

502

gitlab企业版收费标准 gitlab 企业版 社区版_企业版

 

找原因,看到有篇说可能是端口占用了,先找下是哪个端口:

vi /etc/gitlab/gitlab.rb
查看 unicorn['port'] = 8080

查看端口占用情况,发现lsof没装,安装下,再检查:

yum install lsof
lsof -i:8080

该端口未被占用,继续查找原因,看到有人说可能是空间太小,要做swap分区,照着做了,仍是502。

然后想着也许是内存问题,毕竟登录机器已经慢得像蜗牛了,于是扩了内存,从1G扩到2G,问题终于解决了。

至此,gitlab搭建完成,接下来就是使用啦~~~

3. gitlab启停

sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl restart

 4. 修改repositories路径

创建repositories路径,并修改权限和属组

cd /gitData
mkdir /git-data
chown -R git.git git-data

修改gitlab配置文件 /etc/gitlab/gitlab.rb,参考文档:https://docs.gitlab.com/ee/administration/repository_storage_paths.html

git_data_dirs({
   "default" => { "path" => "/gitData/git-data" }
 })

这里要注意,修改这个配置的时候,要把这几行前面的注释和多余的空格都去掉,血泪教训啊`(*>﹏<*)′

sudo gitlab-ctl reconfigure

修改完后,重新加载下配置,/gitData/git-data路径下出现repositories,说明成功了。

然后通过页面创建一个project,新路径下出现了该项目文件,ok,大功告成!