一、gitlab安装

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

1、基础环境准备

[root@linux-node2 ~]# yum install curl policycoreutils openssh-server openssh-clients postfix
[root@linux-node2 ~]# systemctl start postfix

2、安装gitlab-ce

首先配置yum源,使用国内的镜像

vi /etc/yum.repos.d/gitlab-ce.repo

[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

通过yum安装gitlab-ce

[root@linux-node2 ~]# yum makecache
[root@linux-node2 ~]# yum install gitlab-ce

3、配置并启动gitlab-ce

使用gitlab-ctl配置gitlab

[root@linux-node2 ~]# gitlab-ctl reconfigure

查看gitlab状态

[root@linux-node2 ~]# gitlab-ctl status
run: gitlab-workhorse: (pid 4824) 795s; run: log: (pid 4800) 804s
run: logrotate: (pid 4812) 796s; down: log: 0s, normally up, want up
run: nginx: (pid 4806) 798s; run: log: (pid 4805) 798s
run: postgresql: (pid 4679) 854s; run: log: (pid 4678) 854s
run: redis: (pid 4659) 860s; run: log: (pid 4658) 860s
run: sidekiq: (pid 4796) 806s; run: log: (pid 4795) 806s
run: unicorn: (pid 4770) 808s; run: log: (pid 4769) 808s
[root@linux-node2 ~]#

二、gitlab管理与使用

第一次登录gitlab,需要为root用户修改密码,root用户也是gitlab的超级管理员。

wKioL1e2uG6hh2b-AAA9X5k0X0A505.jpg-wh_50


使用root用户和刚才创建的密码登录后,你就可以探索gitlab的奥秘了,可以点击图中红框的按钮进入管理区域。

wKiom1e2uzfgGCXRAAA1XPhCmDA502.jpg-wh_50

wKioL1e2u4DjFcUUAAAxzczbnUs700.jpg-wh_50

在内网搭建服务器,运维人员自己根据需求创建用户,而不是用户自己注册;因此需要将注册的功能取消掉。如图,点击Admin Area---settings

wKioL1e2u4yAdkBQAAAwgoBdxws880.jpg-wh_50

wKiom1e2u4_iAdFNAAAzqEXLZS0053.jpg-wh_50

Sign-up enabled功能取消掉

wKiom1e2u5GCI1HNAAAxODaevYo071.jpg-wh_50

在页面左下角点击save

gitlab中有项目和组的概念;一个组里面可以包含不同的人,因此可以先创建组。

wKioL1e2u5OBDj6jAAAsVPj5aeQ445.jpg-wh_50

wKiom1e2u5ayIXOiAAA6B_e5kXk185.jpg-wh_50

搭建私有的代码仓库,因此需要选择Private

wKioL1e2u5iBUcaOAAA2suK5n7U480.jpg-wh_50

页面右下角,点击create group

接下来在组里创建项目

wKiom1e2u5zR3WYAAABBzqSqEUg887.jpg-wh_50

wKioL1e2u53CoOiEAABBee42Rak305.jpg-wh_50

创建项目后,需要添加认证,以便于拉取代码

wKiom1e2u57gHUrdAABB0zb-UBQ070.jpg-wh_50

wKioL1e2u5_zhp_AAAA6XgWuFuY183.jpg-wh_50

README.md中随便添加一些内容,便于测试。

wKiom1e2u6DT9YKHAAAqdq6rjSI873.jpg-wh_50


wKiom1e2u6CgmGEoAAA8lGR4408994.jpg-wh_50

linux-node1节点的www用户的公钥复制到SSHKeys

wKioL1e2u6GiOk9qAAA9_cPeXSg354.jpg-wh_50

注意,添加title时,命名最好规范一些,比如linux-node1-www表示linux-node1www用户的公钥

wKioL1e2u6LRLT0UAABBFHBsvIg931.jpg-wh_50

拉取代码的方式可以是通过httpSSH,这里我们选择SSH方式

wKioL1e2u6PQDwqSAAA3Cp1xM9Y087.jpg-wh_50

登陆到linux-node1,切换到www用户,执行git clone,拉取代码,如下

wKiom1e2u6ShRx--AAAmEiMkpig626.jpg-wh_50

可以看到在gitlab页面上编辑的README.md里面的内容

wKioL1e2u6WTjNZmAAAnbYyDIt8192.jpg-wh_50

wKiom1e2u6bwSExXAAAnZOUXz7I520.jpg-wh_50

添加一个测试文件,里面随意写一些内容,进行测试。先git add *,将文件添加到索引库中。接下来使用git commit命令将依据索引库中的内容来进行文件的提交。第一次使用git commit –m “add index.html”时,会提示添加邮箱和姓名之类的提示,按照自己的情况添加即可。

wKioL1e2u6eDqIHEAAB0a5N1Ox8240.jpg-wh_50

使用git show 查看commit后的版本号

wKioL1e2u6nCMXrQAAA7PCM-H7k595.jpg-wh_50

wKiom1e2u6qDbX1IAAAaU9rWQWQ538.jpg-wh_50

截取前六位,这样我们就可以使用短的版本号,进行代码的拉取

wKiom1e2u6vx5pWNAAAoTqm1j7g173.jpg-wh_50

将上一个博客中shell脚本进行改造,代码版本获取如图所示:

wKioL1e2u6yj2fXmAABCDgxCnzo278.jpg-wh_50

最后通过在gitlab上拉取代码,使用deploy1.sh脚本进行自动化部署,如图所示:

wKiom1e2u67D1V7MAAA2kl56law563.jpg-wh_50

部署成功后,在浏览器中进行验证。Index.html中的内容确实为刚才所填写的内容。

至此,在gitlab上拉取代码后,自动化部署完毕。

wKioL1e2u6_T93muAAAVsO0s17w161.jpg-wh_50