Gitlab搭建安装及使用中遇到的问题。

Posted cherry-linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitlab搭建安装及使用中遇到的问题。相关的知识,希望对你有一定的参考价值。

一、CentOS7安装gitlab-ce

1.下载及安装rpm软件包。

下载RPM包

curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.9.8-ce.0.el7.x86_64.rpm

安装RPM包

rpm -i gitlab-ce-8.9.8-ce.0.el7.x86_64.rpm

2.修改Gitlab配置文件。

vim /etc/gitlab/gitlab.rb

external_url 'http://gitlab.federico.xin:7389'

? 以上的配置文件是确定gitlab监听的域名以及ip地址,当我们设置完成后执行以下命令将配置写入所有配置文件当中。

重新加载配置文件

gitlab-ctl reconfigure

3.启动Gitlab服务并检查服务是否正常启动。

启动Gitlab

gitlab-ctl start

ok: run: gitlab-workhorse: (pid 5294) 0s
ok: run: logrotate: (pid 5296) 0s
ok: run: nginx: (pid 5300) 0s
ok: run: postgresql: (pid 5302) 0s
ok: run: redis: (pid 5306) 0s
ok: run: sidekiq: (pid 5309) 0s
ok: run: unicorn: (pid 5312) 0s

检查Gitlab进程是否成功启动

ps aux|grep git

git       5271 57.6 11.2 399596 212268 ?       Rl   10:29   0:07 ruby /opt/gitlab/embedded/service/gem/ruby/2.1.0/bin/unicorn -D -E production -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
git       5294  0.0  0.2  37768  4036 ?        Ssl  10:29   0:00 /opt/gitlab/embedded/bin/gitlab-workhorse -listenNetwork unix -listenUmask 0 -listenAddr /var/opt/gitlab/gitlab-workhorse/socket -authBackend http://localhost:8080 -authSocket /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket -documentRoot /opt/gitlab/embedded/service/gitlab-rails/public -pprofListenAddr
root      5296  0.0  0.0  11628  1408 ?        Ss   10:29   0:00 /bin/sh /opt/gitlab/embedded/bin/gitlab-logrotate-wrapper
root      5300  0.0  0.1  37608  2920 ?        Ss   10:29   0:00 nginx: master process /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx
gitlab-+  5302  0.2  1.8 532352 34240 ?        Ss   10:29   0:00 /opt/gitlab/embedded/bin/postgres -D /var/opt/gitlab/postgresql/data
gitlab-+  5306  0.0  0.4  37400  7864 ?        Ssl  10:29   0:00 /opt/gitlab/embedded/bin/redis-server 127.0.0.1:0
git       5309 43.8  3.0 159376 58368 ?        Rsl  10:29   0:02 ruby /opt/gitlab/embedded/service/gem/ruby/2.1.0/bin/sidekiq -q post_receive -q mailers -q archive_repo -q system_hook -q project_web_hook -q gitlab_shell -q incoming_email -q common -q pages -q elasticsearch -q default -e production -r /opt/gitlab/embedded/service/gitlab-rails -t 4 -c 25
git       5312  0.0  0.0  11632  1516 ?        Ss   10:29   0:00 /bin/bash /opt/gitlab/embedded/bin/gitlab-unicorn-wrapper
gitlab-+  5313  0.0  0.2  41700  5172 ?        S    10:29   0:00 nginx: worker process
gitlab-+  5314  0.0  0.0  37760  1492 ?        S    10:29   0:00 nginx: cache manager process
gitlab-+  5315  0.0  0.0  37760  1492 ?        S    10:29   0:00 nginx: cache loader process
gitlab-+  5330  0.0  0.0 532584  1184 ?        Ss   10:29   0:00 postgres: checkpointer process
gitlab-+  5331  0.0  0.0 532584  1192 ?        Ss   10:29   0:00 postgres: writer process
gitlab-+  5332  0.0  0.0 532584   944 ?        Ss   10:29   0:00 postgres: wal writer process
gitlab-+  5333  0.0  0.1 533572  2384 ?        Ss   10:29   0:00 postgres: autovacuum launcher process
gitlab-+  5334  0.0  0.0  26556  1264 ?        Ss   10:29   0:00 postgres: stats collector process
git       5339  0.0  0.0   4308   344 ?        S    10:29   0:00 sleep 1
gitlab-+  5340  0.0  0.4 638200  7964 ?        Ss   10:29   0:00 postgres: gitlab gitlabhq_production [local] idle
root      5342  0.0  0.0 112656   960 pts/0    S+   10:29   0:00 grep --color=auto git
root     32239  0.0  0.0   4328   488 ?        Ss   09:41   0:00 runsvdir -P /opt/gitlab/service log: ...........................................................................................................................................................................................................................................................................................................................................................................................................
root     32260  0.0  0.0   4320   540 ?        S    09:41   0:00 svlogd -tt /var/log/gitlab/redis
root     32343  0.0  0.0   4320   536 ?        S    09:41   0:00 svlogd -tt /var/log/gitlab/postgresql
root     32426  0.0  0.0   4320   540 ?        S    09:42   0:00 svlogd -tt /var/log/gitlab/unicorn
root     32458  0.0  0.0   4320   544 ?        S    09:42   0:00 svlogd -tt /var/log/gitlab/sidekiq
root     32468  0.0  0.0   4176   344 ?        Ss   09:42   0:00 runsv gitlab-workhorse
root     32469  0.0  0.0   4320   540 ?        S    09:42   0:00 svlogd -tt /var/log/gitlab/gitlab-workhorse
root     32475  0.0  0.0   4320   340 ?        S    09:42   0:00 svlogd -tt /var/log/gitlab/nginx
root     32487  0.0  0.0   4320   540 ?        S    09:42   0:00 svlogd -tt /var/log/gitlab/logrotate

? 以上,我们已经将Gitlab服务启动完成,并监听在7389端口,下面我们开始配置前端nginx反向代理Gitlab。

二、配置Nginx反向搭理Gitlab

1.修改Nginx配置文件

vim /etc/nginx/conf.d/gitlab.conf

upstream  git{
    server  ip:port;
}


server{
    listen 80;
    server_name gitlab.federico.xin;

    location / {
        client_max_body_size 500m;
        proxy_redirect off;
        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_pass http://git;
        index index.html index.htm;
    }
}

2.检查并重启Nginx

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx -s reload

三、使用Gitlab过程中遇到的各种问题以及解决措施

1.fatal: The remote end hung up unexpectedly

? 在push代码到库时,出现上述报错,原因是因为上传的git包过大,可以通过以下设置解决此问题。
git config http.postBuffer 524288000

2.error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large

? 出现以上问题同样是因为上传软件包过大,需要我们在nginx参数中进行调整设置文件传输大小的限制。需要注意的是,如果是反向代理的Gitlab需要我们将两台服务器的nginx都进行设置。
grep -r "client_max_body_size" /var/opt/gitlab/

/var/opt/gitlab/nginx/conf/gitlab-http.conf:  client_max_body_size 500M;
/var/opt/gitlab/nginx/conf/nginx.conf:  client_max_body_size 50m;

vim /var/opt/gitlab/nginx/conf/nginx.conf

client_max_body_size 500m;

nginx -t
nginx -s reload

以上是关于Gitlab搭建安装及使用中遇到的问题。的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab的安装搭建

gitlab安装及使用

GitLab安装与汉化-实战

版本管理 GitLab 的安装及管理 (CentOS 7)

小型云服务器搭建GitLab遇到的坑

CentOS安装gitlab服务及创建git仓库实践笔记