GitLab私服搭建
GitLab概述
GitLab版本
- gitlab-ce 社区版 免费
- gitlab-ee 企业版 收费
GitLab安装
环境要求
- 操作系统
Centos 610
VirtualBox上安装Centos610,并配置Host-only+NAT网络 - gitlab-ce-12.1.3
- 内存推荐4G
安装过程
Step1 通过镜像安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
说明:
- bash参数表示在终端执行脚本
- 以上命令安装的是官方镜像,如果使用国内镜像,可以移步:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/ 根据指导进行安装
EXTERNAL_URL="http://gitlab.devserver.me" yum install -y gitlab-ce
说明:
- EXTERNAL_URL=“http://gitlab.devserver.me” 是访问gitlab服务时使用的外部域名,这个会影响代码clone地址的显示,对于局域网私服建议使用ip地址,该url也可以在配置文件中进行配置
安装完成:
gitlab目录结构
软件安装位置:\opt\gitlab
通过tree命令查看gitlab安装后的目录结构:
tree \opt\gitlab
说明:
默认系统中没有tree命令,可以通过命令:yum -y install tree进行安装
Step2 初始化并启动系统
gitlab-ctl reconfigure
gitlab-ctl start
数据库初始化完成:
启动完成:
说明:
- 第一次安装完成后,需初始化系统,自动初始化postgresql数据库
Step 3 修改默认配置
配置文件位置:/etc/gitlab/gitlab.rb
vi /etc/gitlab/gitlab.rb
1)首先停止gitlab服务
gitlab-ctl stop
2) 修改gitlab服务器外部访问url(clone代码时显示的地址)
安装时已经进行了设置,如果不满意可以在此次再次修改,支持ip地址,但必须以http开头
说明:
- 此设置可以在文件开头处找到
- 对于局域网此处可以设置为ip地址
- 此处影响代码clone地址
2)修改服务端口
内置了nginx Web服务,端口号默认是80,容易冲突,可以修改为8081
nginx['listen_port'] = 8081
说明:
- 此处设置在文件中部,可以搜索nginx进行查找,进入vi的命令模式(按冒号:),输入:"\nginx"回车,按n查找下一处,直到找到该行,按i,进入编辑模式,然后删除该行前面的#号,将nil该为8081
- 按esc退出编辑模式,输入“:wq”保存退出
- 更多配置信息请参考:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/configuration.md
同样方法修改unicorn端口为9090
3)重启使配置生效
gitlab-ctl restart postgresql
gitlab-ctl reconfigure
gitlab-ctl start
说明:
- 必须首先重启postgresql数据库,否则会报错
Step 4 访问gitlab系统
1)先关闭系统防火墙
service iptables status #查看防火墙状态
chkconfig iptables off #永久关闭防火墙
说明:
- 临时关闭防火墙请使用:service iptables stop
2)首次访问gitlab
在浏览器中访问gitlab的8081端口,局域网使用ip地址访问,有域名可以使用域名访问,首次访问需要root的密码:
使用root身份和刚刚修改的密码进行登录:
登录成功:
FAQ
Q1 如何卸载GitLab
step 1 停止GitLab服务
gitlab-ctl stop
step 2 卸载软件包
rpm -e gitlab-ce
step 3 清理遗留文件
find / -name gitlab
find / -name gitlab | xargs rm -rm #删除所有包含gitlab的文件
find / -name gitlab
Q2 访问服务器遇到502错误
1)尝试重新启动gitlab服务器
gitlab-ctl stop
gitlab-ctl start
2)如果问题依旧存在,也可能是sidekiq占据了unicorn的端口(配置文件中有设置)
可以通过如下命令查看端口占用情况:
netstat -tunlp|grep {port}
使用如下命令kill进程
kill -9 {PID}
然后重新启动gitlab服务
gitlab-ctl start