Ubuntu 16.04系统下搭建GitLab Server教程
一:"git" 家族的成员
首先解决一个容易混淆的问题,我也经常搞混:
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现git功能的开发库
github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于github一样的系统,一般用于在企业、学校等内部网络搭建git私服
二:安装GitLab的需求
硬件需求
存储
存储空间的大小主要取决于你将存储的Git仓库的大小。但根据 rule of thumb(经验法则) 你应该考虑多留一些空间用来存储Git仓库的备份。
如果你想使用弹性的存储空间,你可以考虑在分配分区的时候使用LVM架构,这样可以在后期需要的清空下添加硬盘在增加存储空间。
除此之外你还可以挂在一个支持NFS的分卷,比如NAS、 SAN、AWS、EBS。
如果你的服务器有足够大的内存和CPU处理性能,GitLab的响应速度主要受限于硬盘的寻道时间。 使用更快的硬盘(7200转)或者SSD硬盘会很大程度的提升GitLab的响应速度。
CPU
·1 核心CPU最多支持100个用户,所有的workers和后台任务都在同一个核心工作这将导致GitLab服务响应会有点缓慢。
·2核心 支持500用户,这也是官方推荐的最低标准。
·4 核心支持2,000用户。
·8 核心支持5,000用户。
·16 核心支持10,000用户。
·32 核心支持20,000用户。
·64 核心支持40,000用户。
Memory
安装使用GitLab需要至少4GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行的应用也会使用内存, 所以安装GitLab前一定要注意当前服务器至少有4GB的可用内存. 少于4GB内存会导致在reconfigure的时候出现各种诡异的问题, 而且在使用过程中也经常会出现500错误.
·1GB 物理内存 + 3GB 交换分区 是最低的要求,但我们 强烈反对 使用这样的配置。
·2GB 物理内存 + 2GB 交换分区 支持100用户,但服务响应会很慢。
·4GB 物理内存 支持100用户,也是 官方推荐 的配置。
·8GB 物理内存 支持 1,000 用户。
·16GB 物理内存 支持 2,000 用户。
·32GB 物理内存 支持 4,000 用户。
·64GB 物理内存 支持 8,000 用户。
·128GB 物理内存 支持 16,000 用户。
·256GB 物理内存 支持 32,000 用户。
即使你服务器有足够多的RAM, 也要给服务器至少分配2GB的交换分区。 因为使用交换分区可以在你的可用内存波动的时候降低GitLab出错的几率。
注意: Sidekiq的25个workers在查看进程(top或者htop)的时候会发现它会单独显示每个worker,但是它们是共享内存分配的,这是因为Sidekiq是一个多线程的程序。
三:在Ubuntu 16.04搭建GitLab服务器操作过程
引言:在Ubuntu 16.04操作系统中搭建GitLab服务器(参考资料:https://about.gitlab.com/downloads/#ubuntu1604)
1.安装依赖包,运行命令
非root用户:sudo apt-get install curl openssh-server ca-certificates postfix
执行完成后,出现邮件配置,选择Internet那一项(不带Smarthost的)
详解
curl:是利用URL语法在命令行方式下工作的开源文件传输工具。
openssh-server:提供开放源代码的加密通讯软件
ca-certificates:现在很多网站和服务都使用了HTTPS进行链路加密、防止信息在传输中间节点被窃听和篡改。HTTPS的启用都需要一个CA证书,以保证加密过程是可信的。
postfix:电子邮件服务器
2.利用清华大学的镜像(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)来进行主程序的安装。
首先信任 GitLab 的 GPG 公钥:
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
(如果下载过程中访问超时出错,请用curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash,并直接跳入gitlab-ce安装)
然后通过root用户利用vi新建并打开文件/etc/apt/sources.list.d/gitlab-ce.list,加入下载地址:
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
最后安装 gitlab-ce:
sudo apt-get update
sudo apt-get install gitlab-ce
3.执行配置并启动gitlab Server
sudo gitlab-ctl reconfigure
4.了使 GitLab 社区版的 Web 界面可以通过网络进行访问,我们需要允许 80 端口通过防火墙,这个端口是 GitLab 社区版的默认端口。为此需要运行下面的命令(此操作可省略)
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
5.检查GitLab是否安装好并且已经正确启动运行,输入下面的命令
sudo gitlab-ctl status
获得如下几项相同启动结果,则说明GitLab运行正常
run: gitlab-workhorse: (pid 1148) 884s; run: log: (pid 1132) 884s
run: logrotate: (pid 1150) 884s; run: log: (pid 1131) 884s
run: nginx: (pid 1144) 884s; run: log: (pid 1129) 884s
run: postgresql: (pid 1147) 884s; run: log: (pid 1130) 884s
run: redis: (pid 1146) 884s; run: log: (pid 1133) 884s
run: sidekiq: (pid 1145) 884s; run: log: (pid 1128) 884s
run: unicorn: (pid 1149) 885s; run: log: (pid 1134) 885s
6.在浏览器地址栏中输入:https://127.0.0.1,即可访问GitLab的Web页面
注意:第一次登录web页面时需要对root用户设置密码
7.gtilab部分命令
sudo gitlab-ctl stop停止
sudo gitlab-ctl start开启
sudo gitlab-ctl restart重启
sudo gitlab-ctl status查看状态
sudo gitlab-ctl reconfigure确认配置(修改配置后,必须执行)
sudo gitlab-ctl tail 查看日志
8.卸载gitlab
执行如下四步:
sudo gitlab-ctl uninstall
sudo dpkg -r gitlab-ce
sudo rpm -e gitlab-ce
reboot(重启)
推荐阅读
-
Ubuntu Server 16.04下mysql8.0安装配置图文教程
-
Ubuntu系统下搭建mysql环境教程
-
Ubuntu16.04环境下搭建FTP服务器的教程
-
Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
-
linux Ubuntu16.04系统下安装samba服务器教程
-
Windows系统下安装VirtualBox及安装Ubuntu16.04的详细教程
-
Ubuntu系统下搭建mysql环境教程
-
Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
-
Ubuntu16.04环境下搭建FTP服务器的教程
-
Ubuntu 16.04系统下搭建GitLab Server教程