gitlab

安装

先决条件

yum install curl policycoreutils openssh-server openssh-clients

rpm安装 这里选择用7.14 是因为好汉化

点击这里下载

下载之后直接 rpm -ivh gitlab-ce-7.14.3-ce.1.el7.x86_64.rpm 安装即可 (centos 7)

gitlab.rb配置

external_url 'http://git.chayu.alp'

gitlab_rails['db_adapter'] = "mysql2"
gitlab_rails['db_encoding'] = "utf8"
gitlab_rails['db_database'] = "gitlab"
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_host'] = "192.168.40.220"
gitlab_rails['db_port'] = 3306


gitlab_rails['smtp_enable'] = false

unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8989

postgresql['enable'] = false

web_server['username'] = 'www'
web_server['group'] = 'www'
web_server['shell'] = '/bin/false'
web_server['home'] = '/home/www'

nginx['enable'] = false

gitlab_ci['db_adapter'] = "mysql2"

保存为gitlab.rb放入 /etc/gitlab/ 目录下

(该文件内容大意:
1.指定访问的url
2.配置db为mysql
3.关闭smtp服务
4.unicron 监听127.0.0.1  端口为8989
5.关闭内置postgresql
6.关闭内置nginx
7.更改www相关目录 为www用户(与现使用的用户相对应)
)

然后使用 gitlab-ctl reconfigure 重新配置

最后使用 gitlab-rake setup 安装mysql数据就可以了

nginx用自己的配置如下:

upstream gitlab {
  server unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket fail_timeout=0;
}



server {
  server_name git.test.com;
  server_tokens off; ## Don't show the nginx version number, a security best practice
  root /opt/gitlab/embedded/service/gitlab-rails/public;



  ## Increase this if you want to upload large attachments
  ## Or if you want to accept large git objects over http
  client_max_body_size 250m;


  ## Individual nginx logs for this GitLab vhost
  access_log  /var/log/gitlab/nginx/gitlab_access.log;
  error_log   /var/log/gitlab/nginx/gitlab_error.log;

  location / {
    try_files $uri $uri/index.html $uri.html @gitlab;
  }

  location /uploads/ {

    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_set_header    X-Frame-Options     SAMEORIGIN;

    proxy_pass http://gitlab;
  }

  location @gitlab {
    ## If you use HTTPS make sure you disable gzip compression
    ## to be safe against BREACH attack.


    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_set_header    X-Frame-Options     SAMEORIGIN;

    proxy_pass http://gitlab;
  }


  location ~ ^/(assets)/ {
    root /opt/gitlab/embedded/service/gitlab-rails/public;
    gzip_static on; # to serve pre-gzipped version
    expires max;
    add_header Cache-Control public;
  }


  error_page 502 /502.html;


}

其实说白了就是一个反向代理到unicron 不过是使用的socket罢了 也可以代理到 8989哟

关于汉化:

解压 gitlabhq-7-14-zh.zip
cp /usr/local/src/gitlabhq/* /opt/gitlab/embedded/service/gitlab-rails/ -rf

遇到的问题:

gitlab-ctl reconfigure可能会遇到一直进行的情况
ruby_block[supervise_redis_sleep] action run

需要手动执行:

exec /opt/GitLab/embedded/bin/runsvdir-start

关闭内置postgresql后使用mysql需要增加mysql2 自己创建myqsql 帐号 以及database 等等。

cd /opt/gitlab/embedded/bin/

./gem install -i/opt/gitlab/embedded/service/gem/ruby/2.1.0 mysql2

安装mysql2

vi /opt/gitlab/embedded/service/gitlab-rails/Gemfile

更改mysql2配置为:

gem "mysql2", "~> 0.3.18"

即可

会涉及到的命令:

gitlab-rake gitlab:check  //检查gitlab
gitlab-rake setup   //安装数据库


gitlab-ctl stop    //关闭服务
gitlab-ctl start    //启动服务