手机版
你好,游客 登录 注册
背景:
阅读新闻

一键安装GitLab7在RHEL6.4上

[日期:2015-11-07] 来源:Linux社区  作者:ubuntu64fan [字体: ]

参考原文:http://www.linuxidc.com/Linux/2014-08/105137.htm

1 关于gitlab7

无论如何gitlab是个好东西,但是极难安装和配置。bitnami(https://bitnami.com/)的一键安装包虽然可以解决大问题,但是仍有很多人无法配置gitlab+nginx和email发送等等问题。今天特意完整地再梳理一次。对各位读者的问题不再逐一解答。

首先,bitmami的一些版本有问题,无法成功在rhel6.4上成功安装。因此,我找到了一个较新的可以使用的版本7.8.1(响应式页面):

ftp://pepstack.com/pub/tarball/bitnami-gitlab-7.8.1-0-linux-x64-installer.run

(我的ftp不会一直提供,请想要的尽快下载)

那么,最后安装好的效果就是(点击可访问,第一次访问可能会比较慢,要求较新版本的firefox或chrome,IE未测试):

http://pepstack.com/gitlab

2 需求描述

好了,先把需求陈述一下,如果读者的需求与我不同,我无能为力。假设我有一台web主机(我这里是pepstack.com),我在主机后面创建虚拟机(vm-gitlab),在vm-gitlab上安装gitlab7,然后通过配置web主机上的ngnix,可以通过下面的url访问到我的gitlab:

http://pepstack.com/gitlab

创建虚拟机vm-gitlab的过程不细说了,如果你使用实体机也是一样的。vm-gitlab安装的是rhel6.4版本。确保在vm内部可以访问外部主机和internet(如ping www.baidu.com)。

3 安装gitlab

ssh 到vm-gitlab:

# ssh root@vm-gitlab

下载一键式安装包:

# wget ftp://pepstack.com/pub/tarball/bitnami-gitlab-7.8.1-0-linux-x64-installer.run

安装:

# chmod a+x bitnami-gitlab-7.8.1-0-linux-x64-installer.run

# ./bitnami-gitlab-7.8.1-0-linux-x64-installer.run

安装过程中会提示:

----------------------------------------------------------------------------
Welcome to the Bitnami Gitlab Stack Setup Wizard.

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want
to install. Click Next when you are ready to continue.

GitLab : Y (Cannot be edited)

GitLab CI [Y/n] :Y

Is the selection above correct? [Y/n]: Y

----------------------------------------------------------------------------
Installation folder

Please, choose a folder to install Bitnami Gitlab Stack

Select a folder [/opt/gitlab-7.8.1-0]:

----------------------------------------------------------------------------
Create Admin account

Bitnami Gitlab Stack admin user creation

Email Address [user@example.com]: cheungmine@qq.com

Login [user]: master (此处是你登录gitlab用的用户名)

Password : (输入你登录gitlab时要用的密码)
Please confirm your password :  (输入你登录gitlab时要用的密码)
----------------------------------------------------------------------------
Hostname that will be used to create internal URLs. If this value is incorrect,
you may be unable to access your Gitlab installation from other computers. It is
advisable to use a Domain instead of an IP address for compatibility with
different browsers.

Domain [127.0.0.1]:

Do you want to configure mail support? [y/N]: Y

----------------------------------------------------------------------------
Configure SMTP Settings

This is required so your application can send notifications via email.

Default email provider:

[1] GMail
[2] Custom
Please choose an option [1] : 2

----------------------------------------------------------------------------
Configure SMTP Settings

This data is stored in the application configuration files and may be visible to
others. For this reason, it is recommended that you do not use your personal
account credentials.

Username []: cheungmine@qq.com

Password : (输入你的QQ密码)
Re-enter : (输入你的QQ密码)
SMTP Host []: smtp.qq.com

SMTP Port []: 25

Secure connection

[1] None
[2] SSL
[3] TLS
Please choose an option [3] :

----------------------------------------------------------------------------
Setup is now ready to begin installing Bitnami Gitlab Stack on your computer.

Do you want to continue? [Y/n]: Y

----------------------------------------------------------------------------
Please wait while Setup installs Bitnami Gitlab Stack on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 #########################################

----------------------------------------------------------------------------
Setup has finished installing Bitnami Gitlab Stack on your computer.

Info: To access the Bitnami Gitlab Stack, go to
http://127.0.0.1:80 from your browser.
Press [Enter] to continue:

4 配置gitlab
配置尤其要小心。下面几个配置文件要用到:

/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/environments/production.rb
/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/initializers/smtp_settings.rb
/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/config/gitlab.yml
/opt/gitlab-7.8.1-0/apps/gitlab/conf/httpd-app.conf
/opt/gitlab-7.8.1-0/apps/gitlab/gitlab-shell/config.yml

下面逐一说明:

4.1 production.rb

......
  # config.action_mailer.delivery_method = :sendmail
  # Defaults to:
  # # config.action_mailer.sendmail_settings = {
  # #  location: '/usr/sbin/sendmail',
  # #  arguments: '-i -t'
  # # }
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => "smtp.qq.com",
    :port => "25",
    :domain => "qq.com",
    :authentication => :plain,
    :user_name => "cheungmine@qq.com",
    :password => "********",
    :enable_starttls_auto => true
  }

  config.eager_load = true
  config.assets.js_compressor = :uglifier

  config.allow_concurrency = false
......

4.2 smtp_settings.rb
# cp smtp_settings.rb.sample smtp_settings.rb

# To enable smtp email delivery for your GitLab instance do the following:
# 1. Rename smtp_settings.rb.sample to smtp_settings.rb
# 2. Edit settings inside this file
# 3. Restart GitLab instance
#
if Rails.env.production?
  Gitlab::Application.config.action_mailer.delivery_method = :smtp

  ActionMailer::Base.smtp_settings = {
    address: "smtp.qq.com",
    port: 25,
    user_name: "cheungmine@qq.com",
    password: "********",
    domain: "qq.com",
    authentication: :login,
    enable_starttls_auto: true,
    openssl_verify_mode: 'none'
  }
end

4.3 gitlab.yml

# # # # # # # # # # # # # # # # # #
# GitLab application config file  #
# # # # # # # # # # # # # # # # # #
#
# How to use:
# 1. Copy file as gitlab.yml
# 2. Update gitlab -> host with your fully qualified domain name
# 3. Update gitlab -> email_from
# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git
# 5. Review this configuration file for other settings you may want to adjust

production: &base
  #
  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: pepstack.com
    port: 80                # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
    https: false            # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details

    # Uncommment this line below if your ssh host is different from HTTP/HTTPS one
    # (you'd obviously need to replace ssh.host_example.com with your own host).
    # Otherwise, ssh host will be set to the `host:` value above
    # ssh_host: ssh.host_example.com

    # WARNING: See config/application.rb under "Relative url support" for the list of
    # other files that need to be changed for relative url support
    relative_url_root: /gitlab

    # Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
    # user: git

    ## Date & Time settings
    # Uncomment and customize if you want to change the default time zone of GitLab application.
    # To see all available zones, run `bundle exec rake time:zones:all RAILS_ENV=production`
    # time_zone: 'UTC'

    ## Email settings
    # Uncomment and set to false if you need to disable email sending from GitLab (default: true)
    # email_enabled: true
    # Email address used in the "From" field in mails sent by GitLab
    email_from: cheungmine@qq.com
    support_email: cheungmine@qq.com

    # Email server smtp settings are in config/initializers/smtp_settings.rb.sample

    # default_can_create_group: false  # default: true
    # username_changing_enabled: false # default: true - User can change her username/namespace
    ## Default theme
    ##  BASIC  = 1
    ##  MARS  = 2
    ##  MODERN = 3
    ##  GRAY  = 4
    ##  COLOR  = 5
    # default_theme: 2 # default: 2
......

上面文件改动之处在于:

host: pepstack.com
relative_url_root: /gitlab
email_from: cheungmine@qq.com
support_email: cheungmine@qq.com

下面的配置是因为要把gitlab置于nginx后面使用:

4.4 httpd-app.conf

<Directory "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/public">
    Options -MultiViews
    AllowOverride All
    <IfVersion < 2.3 >
        Order allow,deny
        Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
        Require all granted
    </IfVersion>

    SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"

    PassengerEnabled on
    PassengerAppRoot "/opt/gitlab-7.8.1-0/apps/gitlab/htdocs/"
    <IfModule pagespeed_module>
        ModPagespeedDisallow "*"
    </IfModule>
    PassengerUser git
    PassengerGroup git
    SetEnv MAGIC "/opt/gitlab-7.8.1-0/ruby/lib/ruby/gems/2.0.0/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/src/file-5.08/magic/magic.mgc"
    SetEnv PATH "/opt/gitlab-7.8.1-0/Python/bin:${PATH}"


</Directory>
PassengerPreStart http://127.0.0.1:80/gitlab

不同之处在于:

SetEnv RAILS_RELATIVE_URL_ROOT "/gitlab"
PassengerPreStart http://127.0.0.1:80/gitlab

4.5 config.yml

...
gitlab_url: http://pepstack.com:80/gitlab/
...

这样我们访问gitlab就是按照下面的地址:

http://pepstack.com/gitlab/

5 主机nginx配置

上面的配置都是在vm-gitlab上进行的,注意打开80:http端口。下面要给主机nginx增加配置,配置文件:

/etc/nginx/conf.d/redmine.conf

内容如下(我同时还提供了redmine服务):

# 指向内网redmine的web服务(192.168.122.21:80)
#
upstream redmine {
    server 192.168.122.21:80;
}

upstream gitlab {
    server 192.168.122.20:80;
}

server {
    server_name pepstack.com;

    # /var/log/nginx 本地目录必须存在
    access_log  /var/log/nginx/redmine_access.log;
    error_log  /var/log/nginx/redmine_error.log;

    location /redmine {
        try_files $uri @red;      # @red 名字是任意的
    }

    location /gitlab {
        try_files $uri @git;
    }

    location @red {
        proxy_set_header  Host            $host;
        proxy_set_header  X-Real_IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_read_timeout    300;
        proxy_connect_timeout  300;
        proxy_redirect        off;

        proxy_pass http://redmine;  # 指向 upstream redmine
    }

    location @git {
        proxy_set_header  Host            $host;
        proxy_set_header  X-Real_IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_read_timeout    300;
        proxy_connect_timeout  300;
        proxy_redirect        off;

        proxy_pass http://gitlab;  # 指向 upstream gitlab
    }
}

即注释掉:include /etc/nginx/sites-enabled/*;

6 启动服务

大功告成,在主机启动nginx:

$ sudo nginx -s reload

在vm-gitlab启动gitlab:

# cd /opt/gitlab-7.8.1-0/

# ./ctlscript.sh restart

一键安装GitLab7在RHEL6.4上

CentOS源码安装GitLab汉化版  http://www.linuxidc.com/Linux/2015-10/124648.htm

Ubuntu 12.04 上安装 GitLab http://www.linuxidc.com/Linux/2012-12/75249.htm

GitLab 5.3 升级注意事项 http://www.linuxidc.com/Linux/2013-06/86473.htm

在 CentOS 上部署 GitLab (自托管的Git项目仓库) http://www.linuxidc.com/Linux/2013-06/85754.htm

在RHEL6/CentOS6/ScientificLinux6上安装GitLab 6.0.2 http://www.linuxidc.com/Linux/2014-03/97831.htm

CentOS 6.5安装GitLab教程及相关问题解决 http://www.linuxidc.com/Linux/2014-05/101526.htm

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

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-11/124919.htm

linux
相关资讯       Gitlab 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款