场景
GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,
可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器
上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放
在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
安装成功之后
确认SSH服务的启动状态以及是否设置为开机启动
可以参考如下博客:
CentOS配置启动ssh与开机自启
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/116265771
安装并设置postfix开机自启
postfix支持gitlab发信功能
yum -y install postfix
然后启动
/etc/init.d/postfix start
然后设置为开机启动
chkconfig postfix on
可以通过
ps -ef | grep postfix
查看是否启动成功
开放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
将这两个配置加到配置文件中
然后重启防火墙
service iptables restart
下载gitlab包并安装
为了避免镜像源导致下载的各种问题,这里直接去国内镜像站去下载
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
将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-
这里需要
yum install policycoreutils-python
来安装相关依赖。
然后再执行上面的安装gitlab的命令
这样的话gitlab就安装成功了。
修改gitlab的配置
通过命令
vi /etc/gitlab/gitlab.rb
编辑gitlab的配置文件
找到external_url的地方,将后面的内容改为服务器的ip和端口号,这里是上面开放的82端口号
然后刷新gitlab的配置
gitlab-ctl reconfigure
这里刷新配置的时间较长,等待完成之后,重新启动gitlab
gitlab-ctl restart
访问gitlab页面
以上都设置完成之后,正常情况下可以直接在浏览器中通过ip:端口号的方式访问到。
但是这里又遇到了问题,访问不到gitlab的页面。
首先去排查了gitlab的端口是否修改成功,以及防火墙的对应端口是否开放。
以上没问题后
这时候查看gitlab的运行日志
sudo gitlab-ctl tail
可以看到一直在输出
[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
杀死此进程
然后重启gitlab
sudo gitlab-ctl restart
然后再查看gitlab的运行日志已经不报错了
此时再通过ip和端口的方式访问gitlab已经可以了。