一、简介

  GitLab 是一个用于仓库管理系统的开源项目,使用git作为代码管理工具,并在此基础上搭建起来的web服务。类似github,常用在企业内部做git私有仓库使用;

  二、gitlab安装

  系统环境准备

  最小化安装centos7,我们需要做如下配置

  1、安装基础包

yum install vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion -y
yum install curl policycoreutils openssh-server openssh-clients postfix -y

  2、添加epel源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

  3、关闭防火墙

systemctl  stop firewalld
systemctl disable firewalld

  4、关闭selinux

sed -i '/SELINUX/s/enforcing/disabled/' /etc/sysconfig/selinux
setenforce 0

  配置好系统环境,我们就可以来安装gitlab了

  安装gitlab我们可以配置gitlab的yum源,然后用yum安装,也可以直接去仓库下载rpm包,然后再使用yum安装都可以

  配置gitlab-ce的yum源

[root@node06 ~]# cat /etc/yum.repos.d/gitlab.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key [root@node06 ~]#

  验证:用yum info gitlab-ce看看是否能够查询到gitlib-ce包的信息

  提示:如果用yum info gitlab-ce能够查询到gitlab-ce的信息,说明我们的gitlab-ce的yum仓库配置没有问题;接下来我们就可以使用yum 来安装gitlab-ce;当然如果你觉得仓库中的gitlab版本太新,想用其他版本,我们也可以去仓库地址中找相应的rpm下载进行安装;

  安装gitlab-ce

[root@node06 ~]# yum install -y gitlab-ce
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:13.4.3-ce.0.el7 will be installed
--> Processing Dependency: policycoreutils-python for package: gitlab-ce-13.4.3-ce.0.el7.x86_64
--> Running transaction check
---> Package policycoreutils-python.x86_64 0:2.5-34.el7 will be installed
--> Processing Dependency: policycoreutils = 2.5-34.el7 for package: policycoreutils-python-2.5-34.el7.x86_64
--> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-34.el7.x86_64
--> Processing Dependency: libsemanage-python >= 2.5-14 for package: policycoreutils-python-2.5-34.el7.x86_64
……省略部分内容……
Installed:
gitlab-ce.x86_64 0:13.4.3-ce.0.el7 Dependency Installed:
audit-libs-python.x86_64 0:2.8.5-4.el7 checkpolicy.x86_64 0:2.5-8.el7
libcgroup.x86_64 0:0.41-21.el7 libsemanage-python.x86_64 0:2.5-14.el7
policycoreutils-python.x86_64 0:2.5-34.el7 python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-4.el7 Dependency Updated:
audit.x86_64 0:2.8.5-4.el7 audit-libs.x86_64 0:2.8.5-4.el7 libsemanage.x86_64 0:2.5-14.el7
policycoreutils.x86_64 0:2.5-34.el7 Complete!
[root@node06 ~]#

  配置gitlab-ce

  提示:如果没有其他要求,我们配置访问gitlab的地址就可以直接启动gitlab,通常除了配置external_url外,我们可能还需要用到发送邮件的需要;比如用户修改密码通过邮件的形式修改;

  配置gitlab-ce邮件发送

  首先我们要有一个互联网邮箱地址,然后登录到互联网邮箱,开启stmp功能,我这里以163的邮箱为例,其他邮箱开通stmp的方式都是大同小异

  提示:这里可以用手机直接扫二维码,也可以点击手动发短信;用手机扫二维码直接生成短信内容和收件人,然后发送短信后再点击我已发送;

  提示:如果是手动发送短信,就用你注册邮箱留到手机号,发送以上短信内容即可,然后点击我已发送;

  提示:最后短信验证没有问题,它会给我们生成一个授权码,我们把这个授权码要记住,然后在gitlab中配置时需要用到这个授权码;

  gitlab-ce配置邮件通知

  提示:这里需要注意一点,如果我们要使用tls加密方式发送邮件,那么我们上面的smtp的端口就要更改为465,并且开启后面的smtp_tls为true;保存上面的配置信息后,我们需要使用gitlab-ctl reconfigure来初始化gitliab;

  发送邮件的配置

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "gitlab_sev@163.com"
gitlab_rails['smtp_password'] = "WCNIFZJFQFFYZDCI"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
user['git_user_email'] = "gitlab_sev@163.com"
gitlab_rails['gitlab_email_from'] = 'gitlab_sev@163.com'

  初始化gitlab

[root@node06 ~]# gitlab-ctl reconfigure

  提示:这个初始化的过程有点长,我们耐心等待就好;

  提示:初始化完成后,它默认就把对应的服务启动起来了;我们就可以直接用浏览器访问刚才配置的url;它上面之所以初始化很久,是因为它后面要启动配置一堆服务;我们可以使用gitlab-ctl status来查看,它到底启动了那些服务;

  查看gitlab的状态

  用浏览器访问宿主机的80端口

  提示:第一次访问,它会让我们先更改密码;我们配置新密码后单击下面的蓝色按钮提交密码;这个是管理员的密码;这里需要注意,我们的密码必须要大于8位,小于8位它会说我们给的密码太短了;

  用root登录

  提示:gitlab默认管理员用户是root,密码就是我们刚才设置的密码 ;

  默认登录后的首页

  到此gitlab就正常运行起来了

  测试

  1、注册帐号

  提示:这里是让我们选择一个角色;这里面有很多角色,我们选择一个即可;

  提示:到此,tom用户就注册并成功登录到gitlab上了;后续tom用户就可以登录自己的帐号在上面创建项目,组等等操作;

  关闭帐号注册功能

  提示:用root帐号登录,点击admin area

  提示:把红框前的对勾去掉,然后点击下面的save changes;

  验证:现在退出root帐号,看看登录界面是否还有注册界面?

  提示:可以看到注册界面就没有了;这样做主要可以统一管理的目的;如果作为一个私有仓库,应该由管理员统一管理帐号、权限;这样做也是一个比较安全的做法;

  使用root用户添加帐号

  提示:登录root帐号,点击上面的小扳手,然后点击newuser,就会弹出添加帐号的界面;

  提示:填写好帐号名和邮箱后,直接点击后面的create user即可;后面的访问权限可以执行设定,如果是管理员选择后面的admin级别即可;

  查看邮件

  提示:我们点击创建用户以后,gitlab就会根据我们填写的邮件地址,给对应邮件地址发送邮件;如上所示;我们设置密码就可以直接点击上面的连接,直接设置密码即可,如下;

  提示:把密码设置以后,点击change your password即可;

  提示:我们设置了密码以后,gitlab会发邮件给我们说密码已经设置,登录点击那个那个地址;如上图所示;我们点击上面的连接,就可以跳转到gitlab的登录界面;然后登录刚才创建的用户和设置的密码就好;

  修改用户密码

  提示:在root用户新建用户后的界面上,点击edit,就可给刚才新建的用户设置密码;或者用root用户登录,点击上面的小扳手,找到下面的用户名,然后点击,也可以跳转到上面的界面;如下

  提示:点击对应的用户名称,就可以跳转到山上一个图的界面,然后我们在点击edit进行编辑即可;

  提示:我们输入两次相同的密码后,点击下方的save changes即可把对应用户的密码修改成我们刚才输入的密码;

  提示:管理员修改密码后,gitlab会发送一份邮件给用户,说管理员把密码重置了;点击链接可以登录;

  提示:使用jerry登录,它会提示我们修改密码,我们把当前密码写上,然后在后面再写新密码,点击set new password即可;

  除上面管理员协助修改密码,我们也可以去登录界面点击忘记密码进行修改

  提示:这里的email要填写我们对应帐号后的邮件地址,然后点击reset password;

  提示:这里提示我们如果我们填写的邮件地址在我们数据库里能够找到,就会发送重置密码的邮件;显然,如果数据库里没有对应的邮件地址,也就不能给我们发送邮件;

  提示:收到邮件后,我们可以点击reset password,然后他会跳转到重置密码的界面;

  创建group

  提示:使用root用户登录gitlab,然后点击上面的小扳手,点击new group,就可以跳转到创建项目的界面;

  提示:创建组的时候,我们要选择私有,互联网,还是公开;如果我们选择私有,就表示只有在组里的成员才能够看到关联到组中的项目,如果是公开,表示登录的用户都看得到;互联网指所有用户都看得到,即便没有登录;选择好,我们就可以点击下面的create group按钮;

  提示:创建好组以后,我们要关联用户到这个组里来,并且指定其在组里的权限,这里的权限有guest,ower等等,如果不清楚个角色的权限,可以点击上面的here哪里;选择好用户和角色以后,就可以点击add users to group;

  提示:把用户关联到对应组里以后,用户会收到一封邮件,如果我们不想待在对应的组里,可以选择离开组;如下

  创建项目

  提示:使用root用户登录gitlab,然后点击上面的小扳手,点击new project,就可以跳转到创建项目的界面;

  提示:这里和创建组有点类似,这里需要注意一点,我们要选择创建的项目属于组还是用户,如果是组就选择组名,对于组中的成员都会对该项目拥有对应角色的权限;然后选择好以后,点击create project;

  提示:项目创建好以后,我们就可以克隆项目到本地了;如上复制对应协议的连接地址,在本地执行git clone 就可以把对应的项目克隆到本地;我们也可以直接在项目中添加文件等等;在项目的下面它告诉我们在命令行中如何克隆项目,提交等等操作;

  克隆刚才创建的项目到本地

  提示:这里使用git clone克隆,它要求我们输入用户名和密码,用户名和密码验证正确后,我们就可以把对应的项目克隆到本地;这里警告我们所我们克隆的项目是一个空仓库;

  进入刚才克隆的仓库,添加文件

  将本地仓库push到远端仓库

  提示:这里提示我们没有指定分支;解决办法明确指定把本地的origin分支 push到远端的master分支;

  验证:在gitlab上,看看我们push的项目中是否有passwd文件?

  到此,在客户端使用git命令可以将gitlab上创建的项目拖到本地,也可以将本地仓库push到远端仓库;

  在gitlab上更改passwd文件内容

  在本地使用git fetch 取远端仓库更新

[root@node06 test]# git fetch
Username for 'http://192.168.0.46': jerry
Password for 'http://jerry@192.168.0.46':
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From http://192.168.0.46/test-app/test
fecc791..08cbf1f master -> origin/master
[root@node06 test]#

  提示:git fetch命令是从远端仓库取更新到本地,但并不与本地分支进行合并;

  将更新应用到本地

  取回远程服务器更新,而后与本地的指定分支合并

  提示:以上使用git pull命令是将远端仓库更新取回,并和本地的master合并;默认不加后面的远端分支和本地分支,默认远端是origin,本地是master;如果本地或远端有多个分支需要明确指出;

  验证:看看本地的passwd是否变了?

  在本地新建分支,然后push到远端仓库

  提示:从上面反馈的显示在远端仓库生成了一个新的分支;

  验证:去远端gitlab上查看是否有devel分支生成?对应分支下是否有fstab和passwd文件?

  删除远端仓库分支

[root@node06 test]# git push origin :devel
Username for 'http://192.168.0.46': jerry
Password for 'http://jerry@192.168.0.46':
To http://192.168.0.46/test-app/test.git
- [deleted] devel
[root@node06 test]#

  验证:查看远端gitlab对应仓库是否还有devel分支?

  提示:可以看到gitlab上的devel分支就没有了;到此gitlab经过测试都是正常工作的,后续我们就可以使用我们搭建的gitlab来管理项目,代码管理;

git仓库之gitlab搭建使用的更多相关文章

  1. 本地Git仓库与GitHub/GitLab仓库同步

    本地仓库即为在你的电脑上的项目文件,远程仓库即为服务器仓库,如GitHub.GitLab或其他等.此处以GitHub介绍本地仓库与远程仓库的同步.可先创建本地仓库,也可先创建GitHub仓库,但都需要 ...

  2. 版本控制系统之基于httpd搭建私有git仓库

    在上一篇博客中,我们主要聊到了git的基本工作原理和一些常用的git命令的使用:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13787701.html:今天我 ...

  3. Git版本控制及gitlab私有仓库

    Git版本控制系统 版本控制系统简介 版本控制系统是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统 记录文件的所有历史变化 随时恢复到任何一个历史状态 多人协作开发 常见版本管理 ...

  4. 搭建本地的git仓库

    折腾了快一天了,终于搭建成功了. 分享一下搭建的步骤: 一.GIT仓库的创建 1. adduser git 2. passwd git 此例设置git的密码为123456 3. cd /home/gi ...

  5. 在Dropbox上搭建私有的Git仓库的教程

    导读 Git版本控制系统需要一个服务器端,而GitHub上要想创建私有的Git服务器端仓库则触及到收费项目,于是这里我们利用Dropbox的免费空间,来看一下在Dropbox上搭建私有的Git仓库的教 ...

  6. 如何把git仓库(包含所有提交历史)迁移到gitlab

    在gitlab上new 一个project 跳转到本地的git 目录中,运行命令 git remote add gitlab gitlab_new_project_address -最后运行如下命令, ...

  7. git知识总结-4.git服务器搭建及迁移git仓库

    1. 前言 因为手里有一份代码之前是直接从其它git服务器上克隆下来的,现在想自己搭建一个git服务器把这份代码管起来. 2. 搭建git服务器 1.安装git: $ sudo apt-get ins ...

  8. 使用sshkey,禁用密码登陆,以及git仓库的搭建

    使用sshkey,可以实现免密码登陆服务器,同时关闭ssh service的使用账号密码登陆功能即可 1.首先在客户机添加sshkey(如果是window系统的话需要安装shell终端工具,例如xsh ...

  9. Git如何克隆Gitlab?Git本地仓库如何上传Gitlab?

    首先确保本机已经安装上Git,其次确认可以正常访问Gitlab服务器 环境: Git:Centos 7.x  192.168.126.138 Gitlab: Centos7.x 192.168.126 ...

随机推荐

  1. 【Unity C#编程】自定义数据

    译林军 灰魅|2014-03-04 10:52|10589次浏览|Unity(315)移动应用(31)技术开发(16)0 在这篇Unity C#的文章中,你将会创建一个简单的数据结构,然后写下它的属性 ...

  2. 使用代码给Unity中的动画片段绑定回调函数

    在制作动作游戏的时候,需要播放许多动画,同时还有个需求,那就是动画播放到一定时间时,给一个回调函数,好做对应的状态变更, 我查了一下,发现如果使用的是unity自带的动画系统,要做到这样的话,需要这样 ...

  3. TG

    telegram windous版 安装包 代理 安装好了,却没有网(ssr+PAC) 解决办法 汉化 在telegram 搜索 " zh_cn"

  4. python调用接口——requests模块

    前提:安装pip install requests 导入import requests 1.get请求   result=requests.get(url,d).json()  或  .text 2. ...

  5. 秒懂JVM的三大参数类型,就靠这十个小实验了

    秒懂JVM的三大参数类型,就靠这十个小实验了 你好,我是悟空哥,「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」.手写了2个小程序,Java刷题小程序,PMP刷题小程序,已发布到公众 ...

  6. NGINX 负载均衡的理解

    前言 NGINX是轻量级,也是当前比较流行的web服务器软件.体积小但是功能强大. 这里我按照自己的理解,记录下对NGINX负载均衡的认识.(加权均衡,最小连接) 这里参考了 [https://blo ...

  7. Gradle实战(01)--介绍与安装

    前言 本章你将学习到 Gradle的介绍 Gradle的安装 Gradle的hello world 1 Gradle的介绍 Gradle是专注于灵活性和性能的开源构建自动化工具 Gradle构建脚本是 ...

  8. js中的选择排序和冒泡排序

    var arr = [12,25,8,16,14]; console.log("排序前数组,",arr) //选择排序:第一轮,找出数组中最小的数,将第一项和最小的数互换位置.第二 ...

  9. 阿里云docker部署mysql

    看完我的上一个博客之后,对centos系统应该有一定的了解,话不多说,接下来我们来在docker容器中部署mysql. 1.下载mysql镜像,因为本人用的5.7版本,你也可以下载最新版,都是可以的 ...

  10. Docker数据卷Volume实现文件共享、数据迁移备份(三)

    数据卷volume功能特性 数据卷 是一个可供一个或多个容器使用的特殊目录,实现让容器中的一个目录和宿主机中的一个文件或者目录进行绑定.数据卷 是被设计用来持久化数据的对于数据卷你可以理解为NFS中的 ...