GitLab是一个开源版本管理系统,是集代码托管,测试,部署于一体的开源git仓库管理软件,可通过web界面来进行访问公开的或私人项目。与Github类似,GitLab能够浏览代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本,并提供一个文件历史库。是目前非常流行好用的研发版本控制系统。
Git有三个类分别为:
Git: 是本地版本控制系统工具。
Github:是官方在线代码托管仓库,可自行注册使用,https://github.com。
GitLab:是自建的一个非官方的自有版本仓库。通俗一点就是公司内部的。
这里要给大家分享的是搭建一个属于自己的Git仓库,也就是Gitlab。
GitLab对硬件还是有一定要求的,因Gitlab有多个job任务及进程,对内存是有要求的,建议1cpu以上,2G内存以上。
搭建前准备工作:这里是用Centos 7版本的系统
1、关闭防火墙
2、关闭SELinux
3、关闭NetworkManager
[root@gitlab ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config
[root@gitlab ~]#
[root@gitlab ~]# setenforce 0
[root@gitlab ~]#
[root@gitlab ~]# systemctl stop NetworkManager
[root@gitlab ~]# systemctl disable NetworkManager
[root@gitlab ~]# systemctl disable iptables
[root@gitlab ~]# systemctl stop iptables
使用在线yum安装Gitlab 和git工具集
[root@gitlab ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix
[root@gitlab ~]# systemctl restart postfix
[root@gitlab ~]# systemctl enable postfix
[root@gitlab ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
[root@gitlab ~]# yum install -y gitlab-ce git --开始安装Gitlab 大约270M,耐心等待下就好了。
Gitlab命令分为两部分:通用命令 和服务管理命令
通用命令:
语法:gitlab-ctl 命令参数
命令参数如下:
help 帮助
reconfigure 修改配置文件之后,需要重新加载下
show-config 查看所有服务配置文件信息
uninstall 卸载这个软件
cleanse 删除gitlab数据,重新白手起家
服务管理命令:
start 启动所有服务
stop 关闭所有服务
restart 重启所有服务
status 查看所有服务状态
tail 查看日志信息
service-list 列举所有启动服务
graceful-kill 平稳停止一个服务
安装完成后接下就是配置
[root@gitlab ~]# gitlab-ctl reconfigure --第一次加载配置的时候会很慢,耐心等待就好,直到加载完成。
...
... ...
... ... ...
... ... ... ...
...
Running handlers:
Running handlers complete
Chef Client finished, 2/516 resources updated in 09 seconds
gitlab Reconfigured!
加载完成后,开始启动Gitlab,GitLab默认会占用80、8080和9090端口
[root@gitlab ~]# gitlab-ctl restart
ok: run: gitaly: (pid 42828) 0s
ok: run: gitlab-monitor: (pid 42852) 0s
ok: run: gitlab-workhorse: (pid 42858) 0s
ok: run: logrotate: (pid 42867) 0s
ok: run: nginx: (pid 42874) 0s
ok: run: node-exporter: (pid 42879) 0s
ok: run: postgres-exporter: (pid 42884) 1s
ok: run: postgresql: (pid 42894) 0s
ok: run: prometheus: (pid 42897) 0s
ok: run: redis: (pid 42907) 0s
ok: run: redis-exporter: (pid 42912) 1s
ok: run: sidekiq: (pid 42997) 0s
ok: run: unicorn: (pid 43007) 0s
[root@gitlab ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 42874 root 7u IPv4 125185 0t0 TCP *:http (LISTEN)
nginx 42875 gitlab-www 7u IPv4 125185 0t0 TCP *:http (LISTEN)
[root@gitlab web-demo]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bundle 40358 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
bundle 40650 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
bundle 40652 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
开户访问web界面
第一次访问,系统会要求重置新密码,管理员的用户名为root
Gitlab默认语言是英文,对于想加强英文的同学,建议继续使用英文,但要求使用中文,这里需要下载一个汉化包
下载最新的汉化包:
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git
如果要下载指定版本的汉化包,需要加上版本号。
例:下载10.5.1,命令如下:
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git -b v10.5.1-zh
下载完成后,将下载的文件夹内容复制到gitlab目录下
复制前先停止Gitlab
[root@gitlab ~]# gitlab-ctl stop
ok: down: gitaly: 0s, normally up
ok: down: gitlab-monitor: 0s, normally up
ok: down: gitlab-workhorse: 1s, normally up
ok: down: logrotate: 0s, normally up
ok: down: nginx: 1s, normally up
ok: down: node-exporter: 0s, normally up
ok: down: postgres-exporter: 1s, normally up
ok: down: postgresql: 0s, normally up
ok: down: prometheus: 0s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 1s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 1s, normally up
[root@gitlab ~]# cp -r -f ./gitlab/* /opt/gitlab/embedded/service/gitlab-rails/
复制时可能不断提示是否要覆盖,这时可能是系统每次执行cp命令时,其实是执行了cp -i命令的别名。出现这种情况可以修改~/.bashrc,在“alias cp=’cp -i’”前加#注释,再刷新文件 source ~/.bashrc
在复制过程中提示,以下信息是正常的
复制完成后,需要重新加载配置,并启动Gitlab
[root@gitlab ~]# gitlab-ctl reconfigure
...
... ...
... ... ...
... ... ... ...
...
Running handlers:
Running handlers complete
Chef Client finished, 2/516 resources updated in 09 seconds
gitlab Reconfigured!
[root@gitlab ~]# gitlab-ctl restart
ok: run: gitaly: (pid 42828) 0s
ok: run: gitlab-monitor: (pid 42852) 0s
ok: run: gitlab-workhorse: (pid 42858) 0s
ok: run: logrotate: (pid 42867) 0s
ok: run: nginx: (pid 42874) 0s
ok: run: node-exporter: (pid 42879) 0s
ok: run: postgres-exporter: (pid 42884) 1s
ok: run: postgresql: (pid 42894) 0s
ok: run: prometheus: (pid 42897) 0s
ok: run: redis: (pid 42907) 0s
ok: run: redis-exporter: (pid 42912) 1s
ok: run: sidekiq: (pid 42997) 0s
ok: run: unicorn: (pid 43007) 0s
[root@gitlab ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 42874 root 7u IPv4 125185 0t0 TCP *:http (LISTEN)
nginx 42875 gitlab-www 7u IPv4 125185 0t0 TCP *:http (LISTEN)
[root@gitlab web-demo]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bundle 40358 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
bundle 40650 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
bundle 40652 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
再次访问web界面,显示的已经为汉化熟悉的中文
登陆进来Gitlab,创建一个项目,但创建项目前我们先创建一个组,让项目归属一个组里
新建一个组
在新建的dev-demo组里,创建一个项目
创建一个项目
在项目里创建一个README文件,一会用于测试用
在项目创建成功后,界面有提示要建ssh-key,这里先建自述文件,后面再来建ssh-key
给README文件添加点内容
在工作区的Git服务器上创建key,再添加至Gitlab
配置在Gitlab注册用户时的邮件发送确认动作
[root@gitlab ~]# vi /etc/gitlab/gitlab.rb
429 gitlab_rails[‘smtp_enable‘] = true
430 gitlab_rails[‘smtp_address‘] = "smtp.qq.com"
431 gitlab_rails[‘smtp_port‘] = 465
432 gitlab_rails[‘smtp_user_name‘] = "409216159@qq.com"
433 gitlab_rails[‘smtp_password‘] = "QQ password"
434 gitlab_rails[‘smtp_domain‘] = "qq.com"
435 gitlab_rails[‘smtp_authentication‘] = "login"
436 gitlab_rails[‘smtp_enable_starttls_auto‘] = true
437 gitlab_rails[‘smtp_tls‘] = true
438 gitlab_rails[‘gitlab_email_from‘] = ‘409216159@qq.com‘
配置完成后,需要重新生成gitlab参数
[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 40422 root 7u IPv4 117999 0t0 TCP *:http (LISTEN)
nginx 40423 gitlab-www 7u IPv4 117999 0t0 TCP *:http (LISTEN)
[root@gitlab ~]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bundle 40358 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
bundle 40650 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
bundle 40652 git 18u IPv4 119105 0t0 TCP localhost:webcache (LISTEN)
设置注册Gitlab用户时发送邮件确认
拉到最下面,点保存,再退出来,在登陆界面,注册一个新的帐号,会向你的注册时的邮箱发送一封确认的邮件
原文地址:http://blog.51cto.com/passed/2073623