git仓库之gitlab搭建使用

  一、简介

  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邮件发送

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

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

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

  提示:最后短信验证没有问题,它会给我们生成一个授权码,我们把这个授权码要记住,然后在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'
View Code

  初始化gitlab

[root@node06 ~]# gitlab-ctl reconfigure

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

 

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

  查看gitlab的状态

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

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

  用root登录

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

  默认登录后的首页

  到此gitlab就正常运行起来了

  注册帐号

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

  提示:到此,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来管理项目,代码管理;

posted @ 2020-10-11 21:10  Linux-1874  阅读(1836)  评论(0编辑  收藏  举报