博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos7安装gitlab11 学习笔记之基础概念、部署安装、权限管理、issue管理
阅读量:4612 次
发布时间:2019-06-09

本文共 9963 字,大约阅读时间需要 33 分钟。

一、基础介绍

  1、简介

    一个基于GIT的源码托管解决方案

    基于rubyonrails开发
    集成了nginx postgreSQL redis sidekiq等组件

  2、安装要求 

      2g内存以上,有点占内存,我的2g内存创建项目适合就报503错误,调大一点就正常了

    这里使用centos7 64位

  3、默认用户

    root/5iveL!fe,正常部署好登陆回要求改密码

  4、常用命令

    gitlab-ctl status
    gitlab-ctl start
    gitlab-ctl stop
      gitlab-ctl restart
    gitlab-ctl tail nginx 查看日志

  5、组件

    nginx 静态web
    gitlab-shell 用于处理git命令和修改
    gitlab-workhorse 轻量级的反向代理服务器
    logrotate 日志文件管理工具
    postgresql 数据库
    redis 缓存数据库
    sidekiq 用于在后台执行队列任务(异步执行)、
    unicorn gitlab rails 应用是托管在这个服务器上面的

  6、目录

    /var/opt/gitlab/git-data/repositories/root:库默认存储目录
    /opt/gitlab:应用代码和相应的依赖程序
    /var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要认为修改配置
    /etc/gilab:配置文件目录
    /var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
    /var/opt/gilab/backups/:备份文件生成的目录

  7、变更主配置文件

    gitlab-ctl reconfigure 重置配置文件
    gitlab-ctl show-config 验证配置文件
    gitlab-ctl restart 重启gitlab服务

  8、指定一个开发需求

 

 

二、安装gitlab

  1、安装依赖

    yum install curl policycoreutils openssh-server openssh-clients postfix

    systemctl enable sshd

    systemctl start sshd
    systemctl enable postfix
    systemctl start postfix

  2、rpm安装

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm
    yum install gitlab
    rpm -ivh gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm

1 [root@web1 ~]# rpm -ivh gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm 2 warning: gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY 3 Preparing...                          ################################# [100%] 4 Updating / installing... 5    1:gitlab-ce-11.10.4-ce.0.el7       ################################# [100%] 6 It looks like GitLab has not been configured yet; skipping the upgrade script. 7  8        *.                  *. 9       ***                 ***10      *****               *****11     .******             *******12     ********            ********13    ,,,,,,,,,***********,,,,,,,,,14   ,,,,,,,,,,,*********,,,,,,,,,,,15   .,,,,,,,,,,,*******,,,,,,,,,,,,16       ,,,,,,,,,*****,,,,,,,,,.17          ,,,,,,,****,,,,,,18             .,,,***,,,,19                 ,*,.20   21 22 23      _______ __  __          __24     / ____(_) /_/ /   ____ _/ /_25    / / __/ / __/ /   / __ `/ __ \26   / /_/ / / /_/ /___/ /_/ / /_/ /27   \____/_/\__/_____/\__,_/_.___/28   29 30 Thank you for installing GitLab!31 GitLab was unable to detect a valid hostname for your instance.32 Please configure a URL for your GitLab instance by setting `external_url`33 configuration in /etc/gitlab/gitlab.rb file.34 Then, you can start your GitLab instance by running the following command:35   sudo gitlab-ctl reconfigure36 37 For a comprehensive list of configuration options please see the Omnibus GitLab readme38 https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md39 40 [root@web1 ~]#

     也可以yum方式安装,添加以下源即可

1 或者添加yum源2 [root@web1 yum.repos.d]# vim gitlab-ce.repo3 4 [gitlab-ce]5 name=gitlab-ce6 baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever7 gpgcheck=08 enabled=19 ~

 

  3、修改配置文件

 

    vim /etc/gilab/gitlab.rb

      external_url 'http://192.168.216.51'

   4、重置配置文件,gitlab就生效了

 

    gitlab-ctl reconfigure

   5、测试

    

    流程:修改密码>root用户登陆>登陆进入界面

 

    现在已经登陆进来了

三、Gitlab的权限管理

  首先创建对象流程

    创建组

    创建用户

    创建项目

    授权项目用户

 

    

  1、创建一个组

 

  点击create

 

 

    下面向组里面添加成员,这里还没有创建用户,开始创建用户

 

 

  2、创建三个用户

 

 

  点击create创建,以此类推创建三个

 

    创建完用户和组就可以创建项目了

    pm 项目管理

    dev1 开发者

    dev2 开发者

    

  3、创建一个项目

 

    新建了一个proj1/test的库

 

 

  

  4、添加ssh keys

 

    SSH KEY

      个人SSH KEY:创建ssh key >将公钥导入用户ssh key

      Deploy KEY:创建deploy key >将deploy key 导入gitlab并在项目中允许

 

   1)个人 SSH KEY

    复制公钥,粘贴到,user setting>SSH Keys

1 [root@web1 ~]# cd /root/.ssh/ 2 [root@web1 .ssh]# ll  3 total 4 4 -rw-r--r-- 1 root root 519 Apr 18 17:28 known_hosts 5 [root@web1 .ssh]# ssh-keygen 6 Generating public/private rsa key pair. 7 Enter file in which to save the key (/root/.ssh/id_rsa):  8 Enter passphrase (empty for no passphrase):  9 Enter same passphrase again: 10 Your identification has been saved in /root/.ssh/id_rsa.11 Your public key has been saved in /root/.ssh/id_rsa.pub.12 The key fingerprint is:13 SHA256:+QcJvTcCplOp7IlgcFpKVKIS5SsRfkKbQntbQ9eMPBE root@web114 The key's randomart image is:15 +---[RSA 2048]----+16 |o*o. ..E*        |17 |*+= . .+ =       |18 |*B+o o  B .      |19 |+B+.o..= + o     |20 |+ +.  = S = o    |21 | o . o o . + .   |22 |    . o   . .    |23 |           .     |24 |                 |25 +----[SHA256]-----+26 [root@web1 .ssh]# ll27 total 1228 -rw------- 1 root root 1679 May  8 16:40 id_rsa29 -rw-r--r-- 1 root root  391 May  8 16:40 id_rsa.pub30 -rw-r--r-- 1 root root  519 Apr 18 17:28 known_hosts31 [root@web1 .ssh]# cat id_rsa.pub 32 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4n1yMW2IoWIU0NtcaBzc3nn+M1mWeeOKi9DB8QrLDk3YtjO2WPZ1MpF+CYiH59NWlKRRypNpccfiS8aMeA5zHnR33gvuK/C6j40McXOs5q/2xjvlD19yk4nSMp46EBv2lIQqfonzOvlVpZbwihUce6I30vLRkDcBMmDuY4JQR+o/72jM8GCt/809YGvVMe3zESc6ava2uoGksataW9Cr3ORiMPilgwx+l00JHEsPxqZ6bNFsLGCPI4UONj2pRD9VR/Os3Zr80oKxM4B+1TZHExTQicQoBLdm53n8LZOgxItvywTPR40EZiro9FlWFBrHlJMJWHSAzXd8GdsLOILOb root@web133 [root@web1 .ssh]#

 

    首先需要两个开发者设置密码,登陆进去设置ssh key

 

 

    设置好密码分别登陆

 

    linux 系统为dev1

 

 

    windows为dev2

    window,安装git

      下载地址:

    设置目录,选一个目录右键Git bash here

    

 

 

   5、测试效果

    测试以下,已经打通权限了,提示似乎是个空库

    linux测试

1 [root@web1 .ssh]# git clone git@192.168.216.51:proj1/test.git2 Cloning into 'test'...3 The authenticity of host '192.168.216.51 (192.168.216.51)' can't be established.4 ECDSA key fingerprint is SHA256:kvAeuWOn6RFSXvl5qFIszQEx9gLizuZER+I4VJkpAso.5 ECDSA key fingerprint is MD5:b7:ef:e0:3c:8f:97:01:c2:5c:9a:2e:fc:4d:e2:99:83.6 Are you sure you want to continue connecting (yes/no)? yes7 Warning: Permanently added '192.168.216.51' (ECDSA) to the list of known hosts.8 warning: You appear to have cloned an empty repository.

    

    windows测试

 

 

   

四、Gitlab的issue管理

    创建milestone

    创建issue

    创建分支

    合并分支

    Todos

 

    Fix #issue_id

    Close #issue_id

 

  1、第一步创建Milestone

    图示如下:

 

 

   

 

 

 

 

 

 

   2、创建issue

    如下图示:

 

 

 

 

 

 

 

 

 

 

     

 

    以此类推,创建一共四个issue

 

  3、dev1 创建分支,开发首页

1 [root@web1 test]# ll  2 total 16 3 -rw-r--r-- 1 root root  8 May  7 20:36 123.html 4 -rw-r--r-- 1 root root 12 May  7 20:39 456.html 5 -rw-r--r-- 1 root root 25 May  7 20:25 index.html 6 -rw-r--r-- 1 root root 14 May  7 20:36 news.html 7 drwxr-xr-x 3 root root 32 May  8 18:13 test 8 [root@web1 test]# cd test 9 [root@web1 test]# ll 10 total 411 -rw-r--r-- 1 root root 6 May  8 18:13 readme12 [root@web1 test]# git checkout -b shouye13 Switched to a new branch 'shouye'14 [root@web1 test]# git status 15 # On branch shouye16 nothing to commit, working directory clean17 [root@web1 test]# echo "

welcom to web1

" >index.html18 [root@web1 test]# ll 19 total 820 -rw-r--r-- 1 root root 24 May 9 11:58 index.html21 -rw-r--r-- 1 root root 6 May 8 18:13 readme27 [root@web1 test]# git add .28 [root@web1 test]# git commit -m "shouye"29 [shouye 0a6efde] shouye30 1 file changed, 1 insertion(+)31 create mode 100644 index.html32 [root@web1 test]# git push origin shouye33 Counting objects: 4, done.34 Delta compression using up to 4 threads.35 Compressing objects: 100% (2/2), done.36 Writing objects: 100% (3/3), 295 bytes | 0 bytes/s, done.37 Total 3 (delta 0), reused 0 (delta 0)38 remote: 39 remote: To create a merge request for shouye, visit:40 remote: http://192.168.216.51/proj1/test/merge_requests/new?merge_request%5Bsource_branch%5D=shouye41 remote: 42 To git@192.168.216.51:proj1/test.git43 * [new branch] shouye -> shouye44 [root@web1 test]#

 

    dev1登陆gitlab  web界面,点击repository,可以看到一个push上来的代码文件

 

 

  4、合并到主干

 

    dev1登陆gitlab  web界面

    点击repository--》create merge request--》填写相关信息交给pm处理--》点击sumbmit merge request

  

 

    填上相关信息,这个合并需要pm来做,dev1提交申请

 

 

     提交后的状态如下:

 

 

    

   pm登陆gitlab web界面

  可以看到一个merge requests--》点击旁边的todos---》检查代码确认---》点击merge

     限制可以看到是open状态,检查没有问题就点merge

 

 

 

 

     

  点击branches 可以看到merged

 

 

    切换dev1账户,查看并点击done完成

 

 

    切换pm,点击milestones可以看到整个进度

 

     接着点击下面issues看看

 

     还是open状态,不应该啊,应该完成的就不是open状态

 

    接下来需要点击这个完成的issue,然后点击close issue 就可以了

 

 

      每次完成还需要点close有点麻烦,接下来看看如何解决

 

      切换到主干pull以下,然后可以后面可以试试dev1   切换到master能不能上传,这里就不演示了,是不能上传的,因为dev1的权限是开发者

1 [root@web1 test]# git checkout master 2 Switched to branch 'master' 3 [root@web1 test]# ll  4 total 4 5 -rw-r--r-- 1 root root 6 May  8 18:13 readme 6 [root@web1 test]# git pull 7 remote: Enumerating objects: 1, done. 8 remote: Counting objects: 100% (1/1), done. 9 remote: Total 1 (delta 0), reused 0 (delta 0)10 Unpacking objects: 100% (1/1), done.11 From 192.168.216.51:proj1/test12    7ec452a..b19d103  master     -> origin/master13 Updating 7ec452a..b19d10314 Fast-forward15  index.html | 1 +16  1 file changed, 1 insertion(+)17  create mode 100644 index.html18 [root@web1 test]# ll 19 total 820 -rw-r--r-- 1 root root 24 May  9 15:23 index.html21 -rw-r--r-- 1 root root  6 May  8 18:13 readme 22 [root@web1 test]#

     

    创建第2个分支新闻,news,并上传

 

1 [root@web1 test]# git checkout -b news 2 Switched to a new branch 'news' 3 [root@web1 test]# echo "news " >news.html 9 [root@web1 test]# git add .10 [root@web1 test]# git commit -m "close #2"11 [news 9503883] close #212  1 file changed, 1 insertion(+)13  create mode 100644 news.html14 [root@web1 test]# git push origin news15 Counting objects: 4, done.16 Delta compression using up to 4 threads.17 Compressing objects: 100% (2/2), done.18 Writing objects: 100% (3/3), 309 bytes | 0 bytes/s, done.19 Total 3 (delta 0), reused 0 (delta 0)20 remote: 21 remote: To create a merge request for news, visit:22 remote:   http://192.168.216.51/proj1/test/merge_requests/new?merge_request%5Bsource_branch%5D=news23 remote: 24 To git@192.168.216.51:proj1/test.git25  * [new branch]      news -> news26 [root@web1 test]#

 

注意:

git commit -m "close #2"的意义在于添加标签close #2 上一部最后需要点击close issue,这里添加close标签就不用点了,会自动生效。

 gitlab 上面的操作和第一个分支首页一样,只是最后不需要在去点close,这是因为添加了close #2 的注释

 

 

转载请注明出处: 

 

   

  

 

转载于:https://www.cnblogs.com/zhangxingeng/p/10826886.html

你可能感兴趣的文章
Java面试题集(1-50)
查看>>
tomcat设置编码utf8
查看>>
Java中各种集合问题
查看>>
使用线程模拟死锁情形
查看>>
运维工程师面试题1
查看>>
JavaSpring
查看>>
How to only capute sub-matched character by grep
查看>>
js之原型
查看>>
Vue中的scoped及穿透方法
查看>>
python
查看>>
强制类型转换
查看>>
bzoj1101:[POI2007]ZAP-Queries
查看>>
canvas.drawBitmap(bitmap, src, dst, paint)
查看>>
springboot&&springcloud知识点
查看>>
SON用法简介
查看>>
ffmpeg示例一:源码
查看>>
51Nod 1042 数字0-9的数量 数位DP
查看>>
jquery隔行变色代码
查看>>
python全栈学习--day33(网络编程-socket)
查看>>
python全栈学习--day14(列表推导式,生成器表达式,内置函数)
查看>>