vlambda博客
学习文章列表

CentOS6中安装、配置、启动GitLab以及遇到的那些坑

GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。


GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,

可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器

上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放

在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。


安装相关依赖


yum -y install policycoreutils openssh-server openssh-clients postfix

 



安装成功之后

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑



确认SSH服务的启动状态以及是否设置为开机启动


可以参考如下博客:

CentOS配置启动ssh与开机自启

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/116265771


安装并设置postfix开机自启

postfix支持gitlab发信功能


yum -y install postfix

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑



然后启动

/etc/init.d/postfix start

然后设置为开机启动


chkconfig postfix on

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑


可以通过

ps -ef | grep postfix


查看是否启动成功


 CentOS6中安装、配置、启动GitLab以及遇到的那些坑


开放shh以及http服务,然后重新加载防火墙列表

service iptables status

查看防火墙状态

vi /etc/sysconfig/iptables

编辑防火墙的配置文件


这里开放SSH的22端口以及后面要计划开放的gitlab的82端口

#SSH-A INPUT -p tcp --dport 22 -j ACCEPT#HTTP-A INPUT -p tcp --dport 82 -j ACCEPT


将这两个配置加到配置文件中


 CentOS6中安装、配置、启动GitLab以及遇到的那些坑


然后重启防火墙


service iptables restart


CentOS6中安装、配置、启动GitLab以及遇到的那些坑


下载gitlab包并安装

为了避免镜像源导致下载的各种问题,这里直接去国内镜像站去下载


https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/


 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑



将rpm包上传到服务器上某路径下,可以使用xftp等工具进行上传


安装

rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

但是这里提示:


##error: Failed dependencies:


policycoreutils-python is needed by gitlab-ce-


 CentOS6中安装、配置、启动GitLab以及遇到的那些坑


这里需要


yum install policycoreutils-python

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑



来安装相关依赖。


然后再执行上面的安装gitlab的命令


 CentOS6中安装、配置、启动GitLab以及遇到的那些坑



这样的话gitlab就安装成功了。


修改gitlab的配置

通过命令

vi /etc/gitlab/gitlab.rb

编辑gitlab的配置文件

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑


找到external_url的地方,将后面的内容改为服务器的ip和端口号,这里是上面开放的82端口号


然后刷新gitlab的配置


gitlab-ctl reconfigure

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑



这里刷新配置的时间较长,等待完成之后,重新启动gitlab


gitlab-ctl restart

 

CentOS6中安装、配置、启动GitLab以及遇到的那些坑

访问gitlab页面

以上都设置完成之后,正常情况下可以直接在浏览器中通过ip:端口号的方式访问到。


但是这里又遇到了问题,访问不到gitlab的页面。


首先去排查了gitlab的端口是否修改成功,以及防火墙的对应端口是否开放。


以上没问题后


这时候查看gitlab的运行日志


sudo gitlab-ctl tail

 


CentOS6中安装、配置、启动GitLab以及遇到的那些坑


可以看到一直在输出


[emerg] 7037#0: bind() to 0.0.0.0:8060 failed (98: Address already in use)


按照提示来看是8060端口被占用了。


所以首先检查8060端口被哪个进程占用


lsof -i tcp:8060

然后可以看到是被pid为2315的所占用


然后查看2315的具体的位置


ps 2315

然后就能定位这个进程所在的具体位置,确定定这个位置下的进程可以进程关闭后,通过


kill -9 2315

杀死此进程

CentOS6中安装、配置、启动GitLab以及遇到的那些坑


然后重启gitlab

sudo gitlab-ctl restart

然后再查看gitlab的运行日志已经不报错了


 


此时再通过ip和端口的方式访问gitlab已经可以了。