林中两路分,一路人迹稀。我独选此路,境遇乃相异。

0%

CentOS上安装部署Gitlab


Gitlab是一款开源的版本管理系统,可实现自托管的Git项目仓库,功能类似Github.GitLab有社区版和企业版,采用Ruby on Rails开发,社区版基于MIT License,其功能基本满足中小型团队的需求.
更多功能看https://about.gitlab.com/features/

系统环境

操作系统:CentOS7.3 64位

安装版本

GitLab社区版(GitLab Community Edition)GitLab CE

安装过程

GitLab有多种安装方式,目前官方提供了GitLab-CE Omnibus安装包,根据官网上的详细介绍可以选择自己操作系统对应的版本按步骤操作,这样相对会比较简单,源码安装等方式显得非常痛苦.GitLab依赖比较多,部署起来也比较大,还是推荐官方说明来安装.
https://about.gitlab.com/downloads

安装配置依赖

GitLab采用Postfix搭建邮件服务器,当然可以安装自己需求使用Sendmail或其他.

1
2
3
4
5
6
7
8
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

下载GitLab-CE Omnibus安装包

GitLab-CE Omnibus安装包有200多M,官方的资源会比较慢,目前国内有清华大学和浙江大学两个源,我们采用浙江大学的源来下载安装.
浙大开源镜像站: http://mirrors.lifetoy.org/gitlab-ce/

Debian/Ubuntu

首先信任GitLab的gpg公钥

1
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

根据Debian/Ubuntu版本,将源信息写入/etc/apt/sources.list.d/gitlab-ce.list

  • Debian7(Wheezy)

    1
    echo "deb http://mirrors.lifetoy.org/gitlab-ce/debian wheezy main" | sudo tee -a /etc/apt/sources.list.d/gitlab-ce.list
  • Debian8(Jessie)

    1
    echo "deb http://mirrors.lifetoy.org/gitlab-ce/debian jessie main" | sudo tee -a /etc/apt/sources.list.d/gitlab-ce.list
  • Ubuntu 14.04LTS

    1
    echo "deb http://mirrors.lifetoy.org/gitlab-ce/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/gitlab-ce.list

安装GitLab-CE:

1
2
sudo apt-get update
sudo apt-get install gitlab-ce
CentOS/RHEL

新建/etc/yum.repos.d/gitlab-ce.repo,内容如下:

  • CentOS6/REHL6

    1
    2
    3
    4
    5
    6
    7
    [gitlab-ce]
    name=gitlab-ce
    baseurl=http://mirrors.lifetoy.org/gitlab-ce/yum/el6
    repo_gpgcheck=0
    gpgcheck=0
    enabled=1
    gpgkey=https://packages.gitlab.com/gpg.key
  • CentOS7/REHL7

    1
    2
    3
    4
    5
    6
    7
    [gitlab-ce]
    name=gitlab-ce
    baseurl=http://mirrors.lifetoy.org/gitlab-ce/yum/el7
    repo_gpgcheck=0
    gpgcheck=0
    enabled=1
    gpgkey=https://packages.gitlab.com/gpg.key

    安装GitLab-CE:

    1
    2
    sudo yum makecache
    sudo yum install gitlab-ce

    配置

    所有的GitLab配置都在/etc/gitlab/gitlab.rb中修改,配置完后,启动GitLab,每次修改配置后都要重新编译

  • 修改配置external_url
    修改这个配置会影响GitLab里面显示的仓库链接

    1
    external_url = 'http://yourip:port'

设置ssh shell的端口

1
gitlab_rails['gitlab_shell_ssh_port'] = 9022
  • 修改GitLab邮件服务器,使用腾讯企业邮箱
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    gitlab_rails['smtp_port'] = 25
    gitlab_rails['smtp_user_name'] = "xxx@yy.com"
    gitlab_rails['smtp_password'] = "xxx"
    gitlab_rails['smtp_domain'] = "smtp.qq.com"
    gitlab_rails['smtp_authentication'] = 'login'
    gitlab_rails['smtp_enable_starttls_auto'] = true

    # If your SMTP server does not like the default 'From: gitlab@localhost' you
    # can change the 'From' with this setting.
    gitlab_rails['gitlab_email_from'] = 'xx@yy.com'
    gitlab_rails['gitlab_email_reply_to'] = 'xx@yy.com'
  • 重新编译:
    1
    sudo gitlab-ctl reconfigure
    现在进主机可登录GitLab了,首次登录会要求重写密码,之后就可以使用了.

GitLab组成

GitLab部署好后,所有工程都在/opt/gitlab目录下.
GitLab比较大,系统部署有很多部分组成,其构成如下:

  • gitlab-shell:用于处理Git命令和修改authorized keys列表
  • gitlab-workhorse:轻量级的反向代理服务器
  • logrotate:日志文件管理工具
  • nginx:静态web服务器
  • postgresql:数据库
  • redis:缓存数据库
  • sidekiq:用于在后台执行队列任务(异步执行)
  • unicorn:GitLab Rails应用是托管在这个服务器上面的。
-------------本文结束 感谢您的阅读-------------
觉得好,点这里 ^_^