官网:

https://about.gitlab.com/

https://docs.gitlab.com/omnibus/maintenance/README.html#get-service-status%20

https://docs.gitlab.com/omnibus/settings/configuration.html

参考:

https://blog.51cto.com/flyfish225/2145495

https://www.cnblogs.com/rexcheny/p/9464163.html

0. 相关知识

  1. GitLabGitHub相同点: 二者都是基于webGit仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
  2. 不同点:
  3. 1GitHub如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。
  4. 2GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。
  5. 从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。
  6. git相关概念:
  7. git 是一种版本控制系统,是一个命令,是一种工具
  8. gitlib 是用于实现git功能的开发库,私用的
  9. github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
  10. gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服. 基于ruby on rails 开发的
  11. 注:gitlab-ce 社区版 gitlab-ee是企业版,收费

硬件要求

4 核  4G  
否则服务起不来。

一、 安装基础服务

  1. yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python

二、 开启postfix

GitLab发送邮件需要用到

  1. sudo systemctl enable postfix
  2. sudo systemctl start postfix

三、更新 git yum源

yum 安装

  1. [root@localhost ~]# cat /etc/yum.repos.d/gitlab-ce.repo
  2. [gitlab-ce]
  3. name=gitlab-ce
  4. baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
  5. repo_gpgcheck=0
  6. gpgcheck=0
  7. enabled=1
    [root@localhost ~]# yum clean all
    [root@localhost ~]# yum makecache
    [root@localhost ~]# yum install -y gitlab-ce

rpm 安装

最新下载安装

https://packages.gitlab.com/gitlab/gitlab-ce                               官方

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/              清华镜像站

  1. wget    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm
  2.  
  3. rpm -ivh gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm

安装完成

组件介绍:

gitlab  中有许多的组件。都自动安装

  1. nginx 静态web服务器
  2. gitlab-shell: 用于处理git 命令 修改authorized 列表
  3. gitlab-workhorse:轻量级反代服务器
  4. logrotate: 日志文件管理工具
  5. postgresql:数据库
  6. redis 缓存数据库
  7. sidekiq 用于在后台执行队列任务(异步执行)
  8. unicornGitLab Rails 应用是托管在这个服务器上面的

目录介绍:

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

修改配置文件

相关配置 可以参考:
https://docs.gitlab.com/omnibus/settings/nginx.html#service-specific-nginx-settings

  1. vim /etc/gitlab/gitlab.rb

  2. # 初次接触,不想搞很多的话,只要改个ip就够。
  3. external_url 'http://test.example.com' # 如果是自己测试。 如果是自己测试需要绑定host
    # external_url = '192.168.134.173' # 也可以使用ip 使用ip的话需注意,中间要加个 "=" 号
  1. ## 可以不配,默认gitlab监听127.0.0.1:8080
    ### Advanced settings
    unicorn['listen'] = '0.0.0.0' # 默认是监听127.0.0.1的。这边需要修改地址。 否则外网监听不到。
    unicorn['port'] = 8082 # 修改 gitlab运行端口

再次修改/opt/gitlab/etc/gitlab.rb文件。 两边修改的监听地址和端口需一致。

  1. vim /opt/gitlab/etc/gitlab.rb
  2. ### Advanced settings
  3. unicorn['listen'] = '0.0.0.0'
  4. unicorn['port'] = 8082

加载配置。重启。

  1. gitlab-ctl reconfigure
  2. gitlab-ctl restart

gitlab-ctl  主控命令

  1. 启动:gitlib-ctl start
  2. 关闭:gitlab-ctl stop
  3. 重启:gitlab-ctl restart
  4. 重载配置:gitlab-ctl reconfigure
    验证配置文件 gitlab-ctl   show-config
  5. 查看状态:gitlab-ctl status
    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 查看版本

查看日志指令

  1. # 查看所有的logs; 按 Ctrl-C 退出
  2. sudo gitlab-ctl tail
  3.  
  4. # 查看nginx 日志
    gitlab-ctl   tail  nginx # 若要知道有什么服务组件可以查看。 可以使用 gitlab-ctl status 查看组件服务的状态。
  5.  
  6. # 查看 gitlab-rails 日志
  7. sudo gitlab-ctl tail gitlab-rails
  8.  
  9. # 拉取某个指定的日志文件
  10. sudo gitlab-ctl tail nginx/gitlab_error.log

日志路劲

  1. /var/log/gitlab/
    /var/log/gitlab/gitlab-rails # gitlab日志 主要可以看production.log
    /var/log/gitlab/nginx # nginx日志在这个下面

然后可以看到工作目录下的 配置文件 也已经进行加载了,修改了。

  1. cat /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

查看端口。 可以看到  gitlab的 8280端口起来了。 同时他会默认起一个 nginx。 作为反向代理。

然后直接访问服务器的80端口就可以了

如果有host绑域名的话。  访问域名也是可以的

登陆。默认管理员:

  1. root
  2. 123456789

gitlab 密码初始化流程

  1. sudo gitlab-rails console production

指令在

  1. /opt/gitlab/bin/

进入以下界面

输入指令,进行操作

  1. irb(main):003:0> u=User.all # 查看所有用户id
  2. => #<ActiveRecord::Relation [#<User id:1 @root>]>
  3. irb(main):004:0> u=User.where(id:1).first # 切换用户,根据用户id来切换。 用户id根据
  4. => #<User id:1 @root>
  5. irb(main):005:0> u.password='' # 修改用户密码
  6. => ""
  7. irb(main):006:0> u.password_confirmation='' # 再次确认密码
  8. => ""
  9. irb(main):007:0> u.save! # 保存, 注意 “!”
  10. Enqueued ActionMailer::DeliveryJob (Job ID: 86ba7806-bfcf-41c2-83e1-d16e55bfdabd) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007efc7433eee8 @uri=#<URI::GID gid://gitlab/User/1>>
  11. => true # 出现true 就是OK的

实际操作。

添加团队 

创建团队,在管理域里面。

点击团队

建立项目名称  。

授权有3种形式:

1. private :  私人项目,需要授权的用户才能访问这个组。(一般都是选这个。)

2. internet: 只需要有账号登录这个git-lab,就能访问这个组。

3. public: 公开项目。 只要能访问git-lab网页 。 都能访问这个组。

然后点击创建 。

这样组就创建成功了 。然后我们需要创建用户。来加入到这个组。

添加用户

点击 Admin Area。 New users。

然后根据提示 设置 就可以了,这三项必填。邮箱无需真实地址。

这个用户的项目限制,按照实际情况来 。

密码栏,默认没有设置。

当上面三项填完之后。 直接创建就可以了。

然后再次进到admin area。可以看到多了一个用户。  直接点进去。

然后点击edit。

就可以修改密码了。

给用户授权

就是将用户加到这个组里面

再次点开 前面 pro1这个组的界面

admin area

点击创建的组

然后我们添加用户

以及授予他角色,这边的 maintainer  就是维护这个项目的权限。相当于以前老版的master。

然后点击加入之后。我们可以看到。组里面的 团建成员有增加。

点击这边可以修改组成员的权限 。

然后继续点击就行了。

创建git库

点进去之后,选择团队。  然后给项目起名字就ok了。

项目,有继承组的授权模式。 然后点击create。

创建完成。

创建完成之后,我们可以看到一些信息。

有2中访问形式, ssh和  http的 。  访问方式是不同的 。

至此 项目创建完成。

4. gitlab 安装、项目创建的更多相关文章

  1. Django框架的安装,项目创建

    目录 Django框架的安装,项目创建 方法安装 Django版本选择 1.11.21(最新LTS版) django管理目录 命令行创建项目 django项目 命令行启动 (必须在项目文件下执行) p ...

  2. Zend Framework 3.0 安装及创建初始化项目教程

    前言: 最近开始接触关于PHP的框架的学习,然而PHP的框架少说也有七八种. 百度了一下,有人说ThinkPHP简单暴力的,有人说Laravel高大上的,等等等等,难以抉择. 最终我还是选择先从接触Z ...

  3. C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节

    C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...

  4. Angular安装及创建第一个项目

    Angular简介 AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJ ...

  5. python项目入门之 安装、创建

    3年前接触python,那时候还是文本格式进行学习,但是由于一直没有项目实践,所以就搁浅了 今天,python如火如荼,适用于人工智能等多领域,已经成为了语言界的翘楚 python有非常多的优点,开源 ...

  6. 测试开发之Django——No2.Django的安装以及项目创建

    开发平台:Mac Python版本:3.7 Django版本:2.0.5 一.Django的安装 1.pip安装 输入命令pip install Django==2.0.5 说明:不指定版本,则安装的 ...

  7. Django在Win7下安装与创建项目hello word示例

    Django在Win7下的安装及创建项目hello word的例子 有关python 的django 框架安装与开发的小例子.Django在Win7下的安装及创建项目hello word.1.安装:命 ...

  8. Vue安装以及Vue项目创建以及Vue Devtools安装

    这几天一直在学习Vue.js框架. 因为以前没有前端项目的经验,也没学过什么前端框架,所以,对于vue.js的学习有些不知所措. 在vue.js官网看教程,按照教程指点,可以不用脚手架开发,也可以搭建 ...

  9. angular入门一之环境安装及项目创建

    angular入门一之环境安装及项目创建 1.安装node.js 下载,安装,在终端测试安装是否成功:node -v(查看nodejs版本) npm -v(查看npm版本) 下载地址:https:// ...

随机推荐

  1. MySQL第四课

    CREATE TABLE biao(    name VARCHAR(20) PRIMARY KEY,    age INT(11) NOT NULL,    sex CHAR(11)DEFAULT ...

  2. Linux-3.14.12内存管理笔记【建立内核页表(3)

    前面已经分析了内核页表的准备工作以及内核低端内存页表的建立,接着回到init_mem_mapping()中,低端内存页表建立后紧随着还有一个函数early_ioremap_page_table_ran ...

  3. 非法指令(Illegal Instruction)问题定位

    关键词:Illegal Instruction.SIGILL等. 进程在运行过程中会收到SIGILL信号,此类错误是由操作系统发送给进程的. SIGILL是某个进程中的某一句不能被CPU识别指令,这些 ...

  4. JAVA笔试题(全解)

      目录 一. Java基础部分................................................................. 9 1.一个".java& ...

  5. mac电脑安装php7

    1.安装 homebrew https://www.jianshu.com/p/abea83253671 /usr/bin/ruby -e "$(curl -fsSL https://raw ...

  6. 基于阿里云平台的使用python脚本发送短信

    第一步:点击短信服务下的帮助文档 第二步:安装python的SDK:点击安装python sdk 第三步:直接通过python的pip工具安装即可,方便快捷: 第四步:点击红框进行测试: 第五步:测试 ...

  7. 洛谷 P5690 [CSP-SJX2019]日期

    传送门 思路 大水题一道,判断一下即可 输入直接用快读读两个数就行了,不需要读一个\(char\)类型的字符 年月不能为\(0\),月份不能超过\(12\),天数不能超过\(31\) 另外在二月天数的 ...

  8. golang之引用自己定义的包

    初始目录如下: 其中main.go只有一个主函数main(),用于运行程序,array文件夹是自己定义的包,里面spArr.go位于package array. spArr中的函数名或变量首字母得大写 ...

  9. 使用Xmanager分析Java内存情况

    今天是想看下程序在正式环境中,内存使用回收的情况,于是开始. 1.首先下载Xmanager,Xshell,然后在Xshell-设置-隧道中设置转发X11连接到Xmanager: 2.开始布置Linux ...

  10. 【CF1053E】Euler tour

    [CF1053E]Euler tour 题面 CF 洛谷 大概意思是你有一棵树,然而你并不知道这棵树是啥.给你一个确定了一些位置的欧拉序(就是\(ST\)表求\(LCA\)的那个序列),问你是否存在一 ...