美文网首页Git使用Java 杂谈
14_Linux环境搭建GitLab服务器

14_Linux环境搭建GitLab服务器

作者: 明天你好向前奔跑 | 来源:发表于2018-12-17 16:02 被阅读69次

    近期想学习Git,公司目前都是使用的SVN,以下是学习搭建一个GitLab服务器的记录总结。
    转载自https://www.jianshu.com/p/b04356e014fa,稍作整理而来。

    @Author Jacky Wang ,
    转载请注明出处 https://www.jianshu.com/p/e51204f935c6

    一、Git及GitLab的介绍

    1.1 Git的优点

    • Git是分布式的,SVN不是

      Git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log
      
    • GIT分支和SVN的分支不同

      分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。
      如下图。
      
    1.png
    • Git有一个强大的代码仓库管理系统 - GitLab
    可以很方便的管理权限、代码review,创建、管理project
    

    1.2 GitLab与GitHub的区别

    GitLabGitHub一样属于第三方基于Git开发的作品,免费且开源。

    不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发。简单来说可把GitLab看作个人版的GitHub

    1.3 GitLab的介绍

    GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
    功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。
    版本:GitLab 分为社区版(CE) 和企业版(EE)。
    配置:建议CPU2核,内存2G以上。

    1.3.1 Gitlab的服务构成:

    Nginx:静态web服务器。
    gitlab-shell:用于处理Git命令和修改authorized keys列表。(Ruby)
    gitlab-workhorse: 轻量级的反向代理服务器。(go)

    GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

    logrotate:日志文件管理工具。
    postgresql:数据库。
    redis:缓存数据库。
    sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)
    unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby Web Server,主要使用Ruby编写)

    二、GitLab服务器的搭建

    2.1 环境配置

    1. 系统:此次使用的是CentOS 7
    2. CPU:建议双核以上
    3. 内存:2GB(官方建议4GB以上)


      2.jpg

    2.2 GitLab服务的安装

    2.2.1 使用yum安装GitLab所需依赖

    清华大学镜像源:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce

    1. 添加GitLab所需依赖库
    vim /etc/yum.repos.d/gitlab_gitlab-ce.repo
    内容为:
    
    [gitlab-ce]
    name=Gitlab CE Repository
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
    gpgcheck=0
    enabled=1
    
    1. 安装GitLab所需依赖

      sudo yum -y install curl openssh-server openssh-clients postfix cronie
      sudo service postfix start
      sudo chkconfig postfix on
      sudo yum -y install lokkit
      #这句是用来做防火墙的,避免用户通过ssh方式和http来访问。
      sudo lokkit -s http -s ssh
      
    2. 安装GitLab

      sudo yum makecache
      sudo yum -y install gitlab-ce
      sudo gitlab-ctl reconfigure  #Configure and start GitLab
      
    3.png
    1. GitLab配置文件修改

      vim /etc/gitlab/gitlab.rb
      
      #外部访问url(经过编译后,自动将这个配置编译到nginx配置,nginx就无需配置了)
      external_url 'http://192.168.5.124'
      #默认值就是8080。如果端口被占用,可将8080修改为其它(例如:9090)
      unicorn['port'] = 8080
      
      ps:external_url就是最后也就是git资源的路径,如:
       git@192.168.5.124:root/repo1.git
       http://192.168.5.124/root/repo1.git
      
    2. 配置域名(经过第4步的配置这一步可省略,在gitlab-ctl reconfigure时会自动配置完毕)

      vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
      
      内容:
      # 外网访问的端口,如果服务器已经有服务器占用了80,那么这里可以改成其它
      listen *:80;
      server_name http://192.168.5.124;
          
      set $http_host_with_default "http://192.168.5.124";
      
      ps: 这里的server_name填写服务器对应的域名即可
      
    1. 修改密码
    gitlab-rails console production
    user = User.where(id:1).first
    user.password='12345678'
    user.save!
    exit
    
    1. 使修改的配置生效

      #使配置生效
      gitlab-ctl reconfigure
      #重新启动GitLab 
      gitlab-ctl restart
      
    4.png
    2.2.2 GitLab常用命令
    gitlab-ctl start    # 启动所有 gitlab 组件;
    gitlab-ctl stop        # 停止所有 gitlab 组件;
    gitlab-ctl restart        # 重启所有 gitlab 组件;
    gitlab-ctl status        # 查看服务状态;
    vim /etc/gitlab/gitlab.rb        # 修改gitlab配置文件;
    gitlab-ctl reconfigure        # 重新编译gitlab的配置;
    gitlab-ctl show-config      #验证配置文件;
    gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
    gitlab-ctl tail        # 查看日志;
    gitlab-ctl tail nginx/gitlab_access.log
    
    gitlab-ctl uninstall    #删除gitlab(保留数据)
    gitlab-ctl cleanse  #删除所有数据,从新开始
    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION   #查看gitlab版本
    
    注意:执行 reconfigure 命令会把gitlab的nginx组件的配置还原,导致自定义修改的端口以及域名等都没有了。
    
    2.2.3 常用目录
    日志地址:/var/log/gitlab/   # 对应各服务的打印日志 
    服务地址:/var/opt/gitlab/   # 对应各服务的主目录
    

    2.3 登陆GitLab后台管理页面

    本机安装好Git程序,然后登录到GitLab后台:我这里的地址就是之前配置的http://192.168.1.124

    测试能否成功连接步骤:

    2.3.1 GitLab后台新建项目库
    在GitLab后台新建库repo1.
    
    5.png
    2.3.2 本机新建测试文件HelloGit.txt
    本机新建文件LocalGit/repo1/HelloGit.txt.
    
    6.png
    2.3.3 创建本地Git
    右键使用turtoiseGit工具选择Git create responsitory创建本地Git库。
    
    2.3.4 提交并推送到远程Git服务器
    1. 选择git commit提交代码到本地库。
    2. 选择git sync,填入GitLab后台新建项目时得到的git仓库连接,这里以http连接为例.
        http://192.168.5.124/root/repo1.git
    6. 如果能成功提交即成功.
    
    7.png 8.png

    相关文章

      网友评论

        本文标题:14_Linux环境搭建GitLab服务器

        本文链接:https://www.haomeiwen.com/subject/hrlckqtx.html