由GitLab Inc.利用Ruby on Rails开发的一个开源的版本管理系统,实现一个自托管的Git项目仓库,具有wiki和issue跟踪功能,可通过Web界面进行访问公开的或者私人项目。
Github地址:https://github.com/gitlabhq/gitlabhq
官方网站:https://gitlab.com/
官方文档:https://docs.gitlab.com/
拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
Gitlab与其他DevOps工具的对比:https://about.gitlab.com/devops-tools/
Git是版本控制系统
Github是在线的基于Git的代码托管服务
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,可通过Web界面进行访问公开的或者私人项目
官方建议服务器至少4GB的可用内存(2G运存的服务器也不要怕,下面有解决办法)
Linux其他发行版本的搭建可以参考官方安装文档:https://about.gitlab.com/install/
强烈推荐使用xshell远程连接linux服务器。
下面开始进入正题
如果没用wget,则执行:
yum install -y vim
yum install -y wget
进入指定目录,下载GitLab(可在官网自行选择版本,这里选用的是gitlab-ce-12.6.0-ce.0.el7.x86_64.rpm):
cd /usr/local
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.6.0-ce.0.el7.x86_64.rpm/download.rpm
CentOS 7.0默认使用的是firewall作为防火墙
下面的命令只是暂时关闭防火墙(重启服务器之后防火墙会再次开启)
systemctl stop firewalld.service
另外,关于CentOS 7.0防火墙问题,这里写的很详细
https://blog.csdn.net/TTTZZZTTTZZZ/article/details/81483204
# yum -y install policycoreutils openssh-server openssh-clients postfix cronie policycoreutils-python
(在CentOS 7.0之前的版本与此版本命令有所不同)
systemctl start postfix.service
systemctl enable postfix.service
cd /usr/local
rpm -ivh download.rpm
修改配置文件gitlab.rb
vim /etc/gitlab/gitlab.rb
注:GitLab默认会占用80、8080和9090端口,如果这些端口对你没影响可以忽略这一步
这一步将会修改GitLab的默认端口为11000、11001和11002
快速查找: 先按ctrl+c
退出编辑状态,接着按/+关键字
可以进行关键字搜索,例如/user
就是查找包含user关键字的字段,要继续查找此关键字,按字符 n
就可以继续查找了
修改为external_url 'http://<你的服务器地址或域名>:11000'
,external_url
是Gitlab的启动地址
将# unicorn['port'] = 8080
修改为unicorn['port'] = 11001
,
unicorn
是ruby的http server
将#prometheus['listen_address'] = 'localhost:9090'
修改为prometheus['listen_address'] = 'localhost:11002'
prometheus
是Gitlab的监控系统
(这里如果找不到#prometheus['listen_address'] = 'localhost:9090'
,就找Define to enable GitLabPages
,改为如图所示)
修改完保存退出。
因为修改了配置文件,故需要重新加载配置内容:
gitlab-ctl reconfigure
成功的状态图:
如果在加载中出现红字或没有出现如上图所示的代码,就说明失败了,很有可能是因为服务器内存不够,上面讲到过,官方建议服务器至少4GB的可用内存 。(解决方案在最后)
如果没有报错请继续执行启动命令,报错则看下面的解决方案:
gitlab-ctl start
如果开启防火墙端口号无法访问,可执行下面的代码开放端口号:
firewall-cmd --zone=public --add-port=80/tcp --permanent
查看已经开放的端口:
firewall-cmd --list-ports
到这里搭建及使用就结束了,下面是上面遗留的 内存不够的解决方案。
在解决之前应该是未启动的状态
停止gitlab的命令:
gitlab-ctl stop
worker_processes
:unicorn['worker_processes'] = 2
postgresql['shared_buffers'] = "256MB"
postgresql['max_worker_processes'] = 8
sidekiq['concurrency'] = 25
dd if=/dev/zero of=/data/swap bs=512 count=8388616
注意:创建swap大小为bs*count=4294971392(4G),/data/swap目录若无则找/mnt/swap
mkswap /data/swap
cat /proc/sys/vm/swappiness
设置参数:
sysctl -w vm.swappiness=60
swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
cat /proc/swaps
gitlab-ctl reconfigure
gitlab-ctl start
最后,汉化的方法并没有找到比较好的,以后找到再进行补充。