http://www.web008.net

7下GitLab搭建及配置

由于公司业务,需要上Git版本控制。

Ubuntu 14.04下安装Gitlab

GitLab:

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它提供Git版本控制、代码检查、Bug跟踪和Wiki,它可以通过LDAP或活动目录来进行安全认证和授权。单个GitLab可以支持25000个用户,同时它也可以通过设置多台服务器来实现其高可用性。

按照官方文档:

  [命令行下apt-get或者aptitude超时]

安装对应的依赖并安装对应版本:

sudo apt-get install curl openssh-server ca-certificates postfix

curl -s | sudo bash

sudo apt-get update && sudo apt-get install gitlab-ce=7.11.4~omnibus-1

上面操作会出现超时,直接使用给出的链接下载对应的deb包

sudo wget -c

sudo dpkg –I  gitlab-ce_7.11.4~omnibus-1_amd64.deb

配置并开启gitlab:

sudo gitlab-ctl reconfigure

配置邮箱,URL:

#下面一定要添加“=”,GitLab自动生成时是没有这个等号的,结果得到"External URL must include a FQDN"这样的错误提示

external_url="www.hostname.com"

# 如果没有安装Postfix或Sendmail这类邮件服务的话,那么就需要象邮件客户端那样根据SMTP服务器的参数来设置以下的内容了

gitlab_rails['gitlab_email_from'] = '[email protected]'

gitlab_rails['gitlab_email_reply_to'] = '[email protected]'

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.gmail.com"

gitlab_rails['smtp_port'] = 587

gitlab_rails['smtp_user_name'] = "[email protected]"

gitlab_rails['smtp_password'] = "my-gmail-password"

gitlab_rails['smtp_domain'] = "smtp.gmail.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = false

gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

#Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see

邮箱配置参考:

启用注册:

在/etc/gitlab/gitlab.rb 文件中添加: gitlab_rails['gitlab_signup_enabled'] = true

测试:

Username: root

Password: 5iveL!fe

完整的Gitlab备份:

使用一条命令即可创建完整的Gitlab备份:

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1296213186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.

Gitlab 修改备份文件默认目录

你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:

gitlab_rails['backup_path'] = '/mnt/backups'

Gitlab 自动备份

也可以通过crontab使用备份命令实现自动备份:

sudo /bin/su - root

crontab -e

加入以下, 实现每天凌晨2点进行一次自动备份:

0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

Gitlab 恢复

同样, Gitlab的从备份恢复也非常简单:

# 停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

# 从1296213186编号备份中恢复

gitlab-rake gitlab:backup:restore BACKUP=1296213186 #backups目录下只有一个备份文件时使用

(根据/var/opt/gitlab/backups下的备份来确定)

启动Gitlab

sudo gitlab-ctl start

Gitlab迁移

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话).

但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.

每次修改配置需要执行:

sudo gitlab-ctl reconfigure

外网通过http或者git访问内网时,添加映射,需要修改nginx监听端口与external_url后添加端口.

CentOS源码安装GitLab汉化版 

在 Ubuntu 12.04 上安装 GitLab

GitLab 5.3 升级注意事项

在 CentOS 上部署 GitLab (自托管的Git项目仓库)

在RHEL6/CentOS6/ScientificLinux6上安装GitLab 6.0.2

CentOS 6.5安装GitLab教程及相关问题解决

GitLab 的详细介绍:请点这里
GitLab 的下载地址:请点这里

14.04下安装Gitlab GitLab: GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它提...

style="color: #000000; font-family: "times new roman", times; font-size: 18px"> * 目前市面上比较有名的Git服务提供商,国外有GitHub、BitBucket、GitLab,国内有码云,Coding。

style="color: #000000; font-family: "times new roman", times; font-size: 18px">* 现有的服务商,对于免费的套餐都有一定的限制。比如:GitHub只允许建立免费的开源repository,建立私有的仓库需要收费。BitBucket允许建立无限制的私有项目,不过对于项目中参与的开发人员是有人数限制的,当团队中开发者规模达到一定数量后,需要付费购买相应的套餐。

GitLab社区版是免费的,不但能建立免费的私有仓库而且没有数量上限,参与人员也没有数量限制,还能设置成员的权限,甚至细致到具体某条分支的权限,以及强大的工作流等等。

GitLab很适合中小型非开源项目公司。

 图片 1

 

一、GitLab 简介

GitLab 是一个利用Ruby on Rails 开发的开源版本控制系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

开源中国代码托管平台 码云 就是基于GitLab项目搭建。

GitLab 分为 GitLab Community Edition(CE) 社区版 和 GitLab Enterprise Edition(EE) 专业版。社区版免费,专业版收费,两个版本在功能上的差异对比,可以参考官方对比说明

二、GitLab 安装和配置

安装社区版,GitLab CE 版本:9.2.6

1、GitLab安装

通过GitLab官方提供的Omnibus安装包来安装,相对方便。Omnibus安装包套件整合了大部分的套件(Nginx、ruby on rails、git、redis、postgresql等),再不用额外安装这些软件,减轻了绝大部分安装量。

GitLab官方安装文档 :CentOS7.x系统

安装依赖包,并配置postfix服务为GitLab邮件服务

 

# yum install curl openssh-server openssh-clients postfix cronie

# systemctl start postfix.service

# systemctl enable postfix.service

    如果仅仅做测试,就关闭防火墙。

        systemctl stop firewalld.service #停止firewall

        systemctl start firewalld.service #开启firewall

        systemctl disable firewalld.service #禁止firewall开机启动

        systemctl enable firewalld.service # 开启开机启动

        firewall-cmd --state #查看默认防火墙状态(关闭后显示not  running,开启后显示running)

    如果正式搭建的话就打开HTTP和SSH端口

       

         # iptables -I INPUT -m tcp -p tcp --dport 22 -j ACCEPT

         # iptables -I INPUT -m tcp -p tcp --dport 80 -j ACCEPT

            (这是centos6下的操作,centos7就自行百度,我这里主要是搭建环境,让gitlab跑起来,就关闭防火墙)

 

两种安装源

  • 从官方镜像源安装

        添加GitLab仓库并安装到服务器上

     # curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash

 

     # yum install gitlab-ce      # 自动安装最新版本 ,此过程可能会等待很长时间         # yum install gitlab-ce-9.2.1-ce.0.el6 # 安装指定版本

 

  • 从第三方镜像源安装

    官方镜像源在国外,国内安装会很慢,甚至有时因网络问题会无法安装。

style="font-family: "times new roman", times; color: #000000; font-size: 18px">国内推荐使用 style="color: #000000">清华大学开源软件镜像源。

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

 

[gitlab-ce]

name=Gitlab CE Repository

baseurl=

gpgcheck=0

enabled=1

 

再执行

# yum makecache             # 更新本地YUM缓存

 

# yum install gitlab-ce     # 自动安装最新版本

 

修改配置文件/etc/gitlab/gitlab.rb,绑定域名

 

external_url 'http://gitlab.xxx.com'        //如果没有域名就用ip地址即可

 

启动GitLab,使得配置生效

 

# gitlab-ctl reconfigure                //此过程可能会等待很长时间

在Dnspod中添加解析记录

使用浏览器访问GitLab,就访问填写上面external_url的值

style="color: #000000; font-family: "times new roman", times; font-size: 18px">首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面.//新版本可能会让你登录,自己注册个账号再登录就行。如下图:

style="color: #000000; font-family: "times new roman", times; font-size: 18px">

style="color: #000000; font-family: "times new roman", times; font-size: 18px"> 图片 2

style="color: #000000; font-family: "times new roman", times; font-size: 18px"> 

style="color: #000000; font-family: "times new roman", times; font-size: 18px"> 

style="color: #000000; font-family: "times new roman", times; font-size: 18px">登录成功后出现下面页面:

style="color: #000000; font-family: "times new roman", times; font-size: 18px">图片 3

 

style="color: #000000; font-family: "times new roman", times; font-size: 18px">

如果你还想要配置更多的细节,可以参考https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

 

GitLab安装细节

主配置文件: /etc/gitlab/gitlab.rb

GitLab 文档根目录: /opt/gitlab

默认存储库位置: /var/opt/gitlab/git-data/repositories

GitLab Nginx 配置文件路径: /var/opt/gitlab/nginx/conf/gitlab-http.conf

Postgresql 数据目录: /var/opt/gitlab/postgresql/data

GitLab由以下服务构成

  • nginx: 静态web服务器

  • gitlab-shell: 用于处理Git命令和修改authorized keys列表

  • gitlab-workhorse: 轻量级的反向代理服务器

  • logrotate:日志文件管理工具

  • postgresql:数据库

  • redis:缓存数据库

  • sidekiq:用于在后台执行队列任务(异步执行)

  • unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。

2、配置SMTP服务

如果你不想用服务器自带的postfix服务来发邮件,可以改用SMTP服务。

修改GitLab邮件服务配置(gitlab.rb文件),使用腾讯企业邮箱的SMTP服务器,填写账号和密码

 

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"

gitlab_rails['smtp_port'] = 25

gitlab_rails['smtp_user_name'] = "xxx"

gitlab_rails['smtp_password'] = "xxx"

gitlab_rails['smtp_domain'] = "smtp.qq.com"

gitlab_rails['smtp_authentication'] = 'plain'

gitlab_rails['smtp_enable_starttls_auto'] = true

使配置生效

# gitlab-ctl reconfigure

# gitlab-rake cache:clear RAILS_ENV=production # 清除缓存

 

3、GitLab配置HTTPS

GitLab默认是使用HTTP的,可以手动配置为HTTPS

上传SSL证书

创建ssl目录,用于存放SSL证书

 

# mkdir -p /etc/gitlab/ssl

# chmod 0700 /etc/gitlab/ssl

上传证书并修改证书权限

 

# chmod 600 /etc/gitlab/ssl/*

郑重声明:本文版权归美高梅163888所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。