Gitlab利用Ruby on Rails开发的开元应用程序,从而实现一个代码项目仓库,可以通过web界面进行访问公开的或者私有的项目
Ruby on Rails是一个可以使开发,部署,维护web应用程序变得简单的框架
Gitlab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问,
非常易于浏览提交过的版本并提供一个文件历史库,另外还提供了一个代码片段收集功能,可以轻松的实现代码复用,便于日后需要的时候可以进行查找
相同点:两者都是基于web的GIt仓库,在很多大程度上Gitlab是模仿github来做的,都是分享开源项目的平台,为开发团队提供了存储,分享,发布以及合作开发项目的中心化云存储的场所
不同点:GitHub在使用私有仓库需要收费的,而Gitlab可在在上面创建免费的私有仓库,另外Gitlab对于开发团队来说,拥有很多的控制权限;
相对于github,有着更多的特色,如免费甚至仓库权限,允许用户选择分享一个project的部分代码;允许用户设置project的获取权限从而进一步提升安全性;可以有选择性的控制访问权限;
代码性能方面:如果不希望公司员工获取全部的代码,这个时候Gitlab是最好的首选,如果是个人开源项目而言,Github是代码的首选
git:是一个版本控制系统,也是一个命令工具
gitlib:用于实现git功能的开发库
github:一个基于git实现的在线代码仓库,包含一个网站界面,开放面广
gitlab:一个基于git实现的在线代码仓库,一般用于企业内网搭建git私服
PS:Gitlab-ce社区版本;gitlab-ee是企业版,收费
实验环境
centos7.3_x64
实验软件
gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
gitlab-patch-zh.tat.gz gitlab汉化包
软件安装
cp -pv /etc/hosts /etc/hosts.bak
echo 192.168.2.117 gitlab.example.com > /etc/hosts
cat /etc/hosts
服务器ip gitlab.example.com
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
free -m
total used free shared buff/cache available
Mem: 3783 103 3542 8 137 3479
Swap: 2047 0 2047 物理内存必须4G以及4G以上以免发生访问时出现502错误
yum install -y curl curl-delve git policycoreutils policycoreutils-python patch patch-devel openssh-server openssh-clients postfix
rpm -ivh /root/gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
tar zxvf gitlab-patch-zh.tat.gz -C /usr/src/
cat /usr/src/gitlab/VERSION
10.2.3
cd /usr/src/gitlab/
git diff v10.2.3 v10.2.3-zh > ../10.2.3-zh.diff
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /usr/src/10.2.3-zh.diff 打汉化补丁
gitlab-ctl start:启动全部服务
gitlab-ctl restart:重启全部服务
gitlab-ctl stop:停止全部服务
gitlab-ctl reconfigure: 使配置文件生效(一般修改完主配置文件/etc/gitlab/gitlab.rb,需要执行此命令)
gitlab-ctl show-config :验证配置文件
gitlab-ctl uninstall:删除gitlab(保留数据)
gitlab-ctl cleanse:删除所有数据,从新开始
gitlab-ctl reconfigure 加载配置从新初始化
Running handlers:
Running handlers complete
Chef Client finished, 382/541 resources updated in 01 minutes 54 seconds
gitlab Reconfigured!
gitlab-ctl status
run: gitaly: (pid 3467) 166s; run: log: (pid 3210) 198s
run: gitlab-monitor: (pid 3488) 166s; run: log: (pid 3305) 190s
run: gitlab-workhorse: (pid 3454) 167s; run: log: (pid 3166) 207s
run: logrotate: (pid 3195) 200s; run: log: (pid 3194) 200s
run: nginx: (pid 3172) 206s; run: log: (pid 3171) 206s
run: node-exporter: (pid 3292) 192s; run: log: (pid 3291) 192s
run: postgres-exporter: (pid 3510) 165s; run: log: (pid 3352) 180s
run: postgresql: (pid 2943) 245s; run: log: (pid 2942) 245s
run: prometheus: (pid 3498) 165s; run: log: (pid 3334) 182s
run: redis: (pid 2876) 256s; run: log: (pid 2875) 256s
run: redis-exporter: (pid 3319) 188s; run: log: (pid 3318) 188s
run: sidekiq: (pid 3149) 213s; run: log: (pid 3148) 213s
run: unicorn: (pid 3108) 219s; run: log: (pid 3107) 219s
netstat -tuplna | grep 80
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 3127/unicorn master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3172/nginx: master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 3172/nginx: master
tcp 0 0 127.0.0.1:8080 127.0.0.1:57626 TIME_WAIT -
tcp 0 0 127.0.0.1:8080 127.0.0.1:57698 TIME_WAIT -
tcp 0 0 127.0.0.1:8080 127.0.0.1:57674 TIME_WAIT -
tcp 0 0 127.0.0.1:8080 127.0.0.1:57650 TIME_WAIT -
udp6 0 0 fe80::3888:124b:494:123 :::* 640/ntpd
用户名为 root 密码为新密码设置
创建项目
创建登入用户 修改登入密码
cd /var/www/html/ 此目录为测试按照环境变化
git clone http://gitlab.example.com/root/test.git
Cloning into 'test'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
ll /var/www/html/test/index.html
/var/www/html/test/index.html
less /var/www/html/test/index.html
welcome to gitlab server 测试服务端是否可以从服务端下载代码