Linux---(CentOS 7.0)在线搭建GitLab及使用(全面又详细)

在Linux中在线搭建GitLab及使用,简单易懂

  • 零.初识GitLab
    • Gitlab
    • Gitlab特点:
    • Gitlab(Github)和Git区别
  • 一.环境准备
    • 0. 前提
    • 1.下载wget及GitLab
    • 2.关闭防火墙
  • 二.部署GitLab
    • 1.安装GitLab的依赖项
    • 2.启动postfix,并设置为开机启动
    • 3.安装rpm包
  • 三.浏览器访问及使用
  • 四.重新加载配置,内存不够解决方案
    • 1.修改GitLab配置文件/etc/gitlab/gitlab.rb
    • 2.启用Swap分区

零.初识GitLab

Linux---(CentOS 7.0)在线搭建GitLab及使用(全面又详细)_第1张图片

Gitlab

由GitLab Inc.利用Ruby on Rails开发的一个开源的版本管理系统,实现一个自托管的Git项目仓库,具有wiki和issue跟踪功能,可通过Web界面进行访问公开的或者私人项目。
Github地址:https://github.com/gitlabhq/gitlabhq
官方网站:https://gitlab.com/
官方文档:https://docs.gitlab.com/

Gitlab特点:

拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
Gitlab与其他DevOps工具的对比:https://about.gitlab.com/devops-tools/

  1. 可见性:保持流畅,不用等待同步,管理项目而不是工具,缩短周期时间
  2. 高效性:无需等待即可协作,同时工作,没有更多的交接
  3. 安全治理性:简化用户管理,加快审计,内置监控系统

Gitlab(Github)和Git区别

Git是版本控制系统
Github是在线的基于Git的代码托管服务
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,可通过Web界面进行访问公开的或者私人项目

一.环境准备

0. 前提

官方建议服务器至少4GB的可用内存2G运存的服务器也不要怕,下面有解决办法
Linux其他发行版本的搭建可以参考官方安装文档:https://about.gitlab.com/install/
强烈推荐使用xshell远程连接linux服务器。
下面开始进入正题

1.下载wget及GitLab

如果没用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

2.关闭防火墙

CentOS 7.0默认使用的是firewall作为防火墙
下面的命令只是暂时关闭防火墙(重启服务器之后防火墙会再次开启)

systemctl stop firewalld.service

另外,关于CentOS 7.0防火墙问题,这里写的很详细
https://blog.csdn.net/TTTZZZTTTZZZ/article/details/81483204

二.部署GitLab

1.安装GitLab的依赖项

# yum -y install policycoreutils openssh-server openssh-clients postfix cronie policycoreutils-python

2.启动postfix,并设置为开机启动

(在CentOS 7.0之前的版本与此版本命令有所不同)

systemctl start postfix.service
systemctl enable postfix.service

3.安装rpm包

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的启动地址
Linux---(CentOS 7.0)在线搭建GitLab及使用(全面又详细)_第2张图片
# unicorn['port'] = 8080修改为unicorn['port'] = 11001
unicorn是ruby的http server
Linux---(CentOS 7.0)在线搭建GitLab及使用(全面又详细)_第3张图片
#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

三.浏览器访问及使用

  • 0.浏览器访问 http://ip地址:11000
  • 1.如果访问出现502,则有可能是端口号被占用或内存不够导致的
  • 2.首先注册,登陆
  • 3.创建组及创建项目都比较简单,按照提示进行就可以了(部分浏览器可以右键进行页面翻译)
  • 4.将别人邀请进自己的组中,操作如下图所示(下面提交项目里有详细的过程)
    Linux---(CentOS 7.0)在线搭建GitLab及使用(全面又详细)_第4张图片
  • 5.浏览器提交项目到GitLab
    使用浏览器访问GitLab在线提交项目:
    https://blog.csdn.net/Amourtani/article/details/103721666
    GitLab 部署及管理员账号初始化:
    https://blog.csdn.net/hnmpf/article/details/80518460

到这里搭建及使用就结束了,下面是上面遗留的 内存不够的解决方案

四.重新加载配置,内存不够解决方案

在解决之前应该是未启动的状态
停止gitlab的命令:

gitlab-ctl stop

1.修改GitLab配置文件/etc/gitlab/gitlab.rb

  1. 减少进程数,修改worker_processes
    unicorn['worker_processes'] = 2
    #默认是被注释掉的,官方建议该值是CPU核心数加一,可以提高服务器的响应速度,如果内存只有4G,或者服务器上有其它业务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死
  2. 减少数据库缓存
    postgresql['shared_buffers'] = "256MB"
    默认为256MB,可适当改小
  3. 减少数据库并发数
    postgresql['max_worker_processes'] = 8
    默认为8,可适当改小
  4. 减少sidekiq并发数
    sidekiq['concurrency'] = 25
    默认是25,可适当改小

2.启用Swap分区

  1. 创建 swap 分区(这里需要等待几秒)命令:
dd if=/dev/zero of=/data/swap bs=512 count=8388616

注意:创建swap大小为bs*count=4294971392(4G),/data/swap目录若无则找/mnt/swap

  1. 通过mkswap命令将上面新建出的文件做成swap分区:
mkswap /data/swap
  1. 查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
    查看参数:
cat /proc/sys/vm/swappiness

设置参数:

sysctl -w vm.swappiness=60
  1. 启用 swap 分区
swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
  1. 再次使用cat /proc/swaps 查看swap分区是否启动
cat /proc/swaps
  1. 最后重启配置生效:
gitlab-ctl reconfigure
gitlab-ctl start

最后,汉化的方法并没有找到比较好的,以后找到再进行补充。

你可能感兴趣的:(Linux,学习&开发时的问题)