GitLab基本介绍
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
本篇教程将教你如何安装部署及使用GitLab。
Git的家族成员
Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
Gitlab的服务构成
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
GitLab工作流程
ECS配置要求:内存2G以上
环境:rhel6.5
主机:虚拟机ckd1——>172.25.254.1
步骤:
(1)配置yum源
vim /etc/yum.repos.d/yum.repo
复制以下内容:
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
这个网址是网络端的yum源,因此需要在主机联网状态下才能够
使用。我的系统是rhel6.*的所以使用http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6,
在对应版本的系统下使用对应的yum源版本,不然可能会出现错误。
rhel7.*的可以使用el7的yum源。
Repo_gpgcheck=0
Enabled=1
gpgcheck=0
需要注意的是,我这里使用的是虚拟主机,那么如何让虚拟机能够上网以使用yum源呢?我再赘述一次。
虚拟机操作:
1.添加一个网关,保持和真机ip一致。
2.修改网络配置文件
vim /etc/resolv.conf
写入:nameserver 114.114.114.114
iptables -t nat -I POSTROUTING -s 172.25.254.1/24 -j MASQUERADE
就仅仅这三步,是不是很简单。(请务必掌握)
验证:
(2)更新本地yum缓存
yum makecache
(3)安装GitLab社区版
yum intall gitlab-ce #自动安装最新版
yum install gitlab-ce-x.x.x #安装指定版本
注意:安装过程是需要联网的。
GitLab常用命令:
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
(4)修改gitlab配置文件
root@server11 ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://172.25.254.1' #访问gitlab的地址
[root@server11 ~]# gitlab-ctl reconfigure #启动服务(耗时较长)
(5)登录gitlab,在浏览器输入自己的gitlab访问地址。
注意:第一次登录使用的用户名和密码为 root 和 5iveL!fe。首次登录会强制用户修改密码。密码修改成功后,需要重新输入新密码进行登录。
(6)创建Project
安装Git工具linux:安装Git,使用自带的源安装。
yum install git
(7)生成密钥文件:使用ssh-keygen生成密钥文件.ssh/id_rsa.pub
[root@server1 .ssh]# ssh-keygen
[root@server1 .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts README.md
[root@server1 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3UUgTea40AajYIbMy3nuWiSTgXXdo+HQTyCYgJNWjzRrbH1xyLKfZc8APdqx6s0RlIJisDBCfsSG8QnXudrtZWuurCtqkFiMxvlkC9g0RMOrarzHH7Z5tDxYmDjbNJwnO0OaOcpoWgafHypsZn2QM5yrAG73lObnyGhRoxmSAkOTFobw+KXDZwDg0M8+jXtEcTGLO3Gz1BXeCkHzONBC3Jh12SGC68cWJjqblsl4BOPlPHN0GzOfHA7+RGTmOKY3UTedW4XB1Bs9D2xP/42bi1E5NSIxK68BynTfB/pzIigBVfLAZMYVJRtzP3O/pmb9G7+ZOePJsI6kPqUkRxH7WQ== root@server1
(8)上传公钥到gitlab,http://172.25.254.1/profile/keys下添加sshkey 。
(9)添加git用户信息
# 配置使用Git仓库的人员姓名
[root@server11 ~]# git config --global user.name "kobe"
# 配置使用Git仓库的人员email,填写自己的公司邮箱
[root@server11 ~]# git config --global user.email "mamba@lakers.org"
[root@server11 ~]# git config --global --list
user.name=kobe
user.email=mamba@lakers.org
(10)进入到项目目录,创建需要上传到GitLab中的目标文件,将目标文件或者目录拷贝到项目目录下。
root@server11 ~]# cd test/
[root@server11 test]# echo "test" > test.sh
root@server11 test]# git add test.sh
(11)将test.sh文件加入到索引中,将test.sh提交到本地仓库,将文件同步到GitLab服务器上。
root@server11 test]# git add test.sh
root@server11 test]# git commit -m "test.sh"
root@server11 test]# git push -u origin master
(12)在网页中查看上传的test.sh文件已经同步到GitLab中。
至此,gitab的安装和配置就完成了,有没有觉得很简单,快快动手,一起get技能。