美文网首页
Centos7.2 搭建Gitlab并汉化

Centos7.2 搭建Gitlab并汉化

作者: pokerface_max | 来源:发表于2019-10-16 22:25 被阅读0次

    一、前言

    1、GitLab是什么?

    GitLab一个开源的git仓库管理平台,方便团队协作开发、管理。在GitLab上可以实现完整的CI(持续集成)、CD(持续发布)流程。而且还提供了免费使用的Plan,以及免费的可以独立部署的社区版本(https://gitlab.com/gitlab-org/gitlab-ce )。
    官网:https://about.gitlab.com/

    2、本篇环境信息

    工具 环境
    系统版本 阿里云Centos7.2
    Gitlab Gitlab-ce12.3.0

    二、准备工作

    1、安装依赖

    sudo yum install -y curl policycoreutils-python openssh-server
    
    sudo systemctl enable sshd
    sudo systemctl start sshd
    

    2、安装Postfix

    Postfix是一个邮件服务器,GitLab发送邮件需要用到

    # 安装
    sudo yum install -y postfix
    # 设置开机启动
    sudo systemctl enable postfix
    sudo systemctl start postfix
    # 如果启动报错  no local interface found for ::1
    # 需要在配置文件中配置interface
    vi  /etc/postfix/main.cf
    inet_interfaces = all
    

    三、安装Gitlab

    本次我们部署的是社区版:gitlab-ce,如果要部署商业版可以把关键字替换为:gitlab-ee
    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
    1、下载对应的ce版本

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.0-ce.0.el7.x86_64.rpm
    

    安装gitlab

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

    安装成功后如下图


    1571236737227.jpg

    四、配置Gitlab

    GitLab默认的配置文件路径是 /etc/gitlab/gitlab.rb
    默认的站点Url配置项是: external_url 'http://gitlab.example.com'
    这里我将GitLab站点Url修改为 http://git.xxx.com
    也可以用IP代替域名,这里根据自己需求来即可

    修改配置文件:

    sudo vi /etc/gitlab/gitlab.rb
    # 访问路径
    external_url 'http://git.xxx.com'
    # 时区
    gitlab_rails['time_zone'] = 'Asia/Shanghai'
    

    五、启动Gitlab

    装配配置

    sudo gitlab-ctl reconfigure
    

    配置成功可以看到

    Running handlers complete
    Chef Client finished, 432/613 resources updated in 03 minutes 43 seconds
    gitlab Reconfigured!
    

    启动Gitlab

    sudo gitlab-ctl restart
    
    # 启动成功
    ok: run: alertmanager: (pid 20643) 0s
    ok: run: gitaly: (pid 20658) 0s
    ok: run: gitlab-exporter: (pid 20690) 0s
    ok: run: gitlab-workhorse: (pid 20694) 1s
    ok: run: grafana: (pid 20706) 0s
    ok: run: logrotate: (pid 20724) 1s
    ok: run: nginx: (pid 20806) 0s
    ok: run: node-exporter: (pid 20814) 1s
    ok: run: postgres-exporter: (pid 20821) 0s
    ok: run: postgresql: (pid 20836) 0s
    ok: run: prometheus: (pid 20850) 1s
    ok: run: redis: (pid 20868) 0s
    ok: run: redis-exporter: (pid 20933) 1s
    ok: run: sidekiq: (pid 20940) 1s
    ok: run: unicorn: (pid 20952) 0s
    

    访问GitLab
    http://git.xxx.com

    1571237351191.jpg
    这时候会提示为管理员账号设置密码。管理员账号默认username是root。
    设置完成之后即可使用root账号登录,登陆后会进入欢迎界面。

    六、GitLab常用配置

    1、禁用创建组权限

    GitLab默认所有的注册用户都可以创建组。但对于团队来说,通常只会给Leader相关权限。
    虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置GitLab默认禁用创建组权限。

    sudo vi /etc/gitlab/gitlab.rb
    # 开启gitlab_rails['gitlab_default_can_create_group'] 选项,并将值设置为false
    ### GitLab user privileges
    gitlab_rails['gitlab_default_can_create_group'] = false
    

    保存后,重新配置并启动GitLab

    sudo gitlab-ctl reconfigure
    

    2、gitlab-ctl常用命令介绍

    语法:gitlab-ctl 命令参数
    命令参数如下:

    命令 说明
    help 帮助
    reconfigure 修改配置文件之后,需要重新加载下
    show-config 查看所有服务配置文件信息
    uninstall 卸载这个软件
    cleanse 删除gitlab数据,重新白手起家

    服务管理命令:

    命令 说明
    start 启动所有服务
    stop 关闭所有服务
    restart 重启所有服务
    status 查看所有服务状态
    tail 查看日志信息
    service-list 列举所有启动服务
    graceful-kill 平稳停止一个服务

    七、汉化Gitlab

    Gitlab默认语言是英文,对于想加强英文的同学,建议继续使用英文,但要求使用中文,这里需要下载一个汉化包。
    下载对应的汉化包:
    汉化插件地址:https://gitlab.com/xhang/gitlab
    可以直接下载对应的版本或者clone整个库切换到对应的版本

    git clone https://gitlab.com/xhang/gitlab.git -b 12-3-stable-zh
    

    下载完成后,将下载的文件夹内容复制到gitlab目录下
    复制前先停止Gitlab

    [root@gitlab ~]# gitlab-ctl stop
    ok: down: gitaly: 0s, normally up
    ok: down: gitlab-monitor: 0s, normally up
    ok: down: gitlab-workhorse: 1s, normally up
    ok: down: logrotate: 0s, normally up
    ok: down: nginx: 1s, normally up
    ok: down: node-exporter: 0s, normally up
    ok: down: postgres-exporter: 1s, normally up
    ok: down: postgresql: 0s, normally up
    ok: down: prometheus: 0s, normally up
    ok: down: redis: 0s, normally up
    ok: down: redis-exporter: 1s, normally up
    ok: down: sidekiq: 0s, normally up
    ok: down: unicorn: 1s, normally up
    
    [root@gitlab ~]# cp -r -f  ./gitlab/*  /opt/gitlab/embedded/service/gitlab-rails/ 
    

    复制时可能不断提示是否要覆盖,这时可能是系统每次执行cp命令时,其实是执行了cp -i命令的别名。出现这种情况可以修改~/.bashrc,在“alias cp=’cp -i’”前加#注释,再刷新文件 source ~/.bashrc

    复制完成后,需要重新加载配置,并启动Gitlab

    [root@gitlab ~]# gitlab-ctl reconfigure      
    ...
    ... ...
    ... ... ...
    ... ... ... ...
    ...
    Running handlers:
    Running handlers complete
    Chef Client finished, 2/516 resources updated in 09 seconds
    gitlab Reconfigured!
    
    [root@gitlab ~]# gitlab-ctl restart
    ok: run: gitaly: (pid 42828) 0s
    ok: run: gitlab-monitor: (pid 42852) 0s
    ok: run: gitlab-workhorse: (pid 42858) 0s
    ok: run: logrotate: (pid 42867) 0s
    ok: run: nginx: (pid 42874) 0s
    ok: run: node-exporter: (pid 42879) 0s
    ok: run: postgres-exporter: (pid 42884) 1s
    ok: run: postgresql: (pid 42894) 0s
    ok: run: prometheus: (pid 42897) 0s
    ok: run: redis: (pid 42907) 0s
    ok: run: redis-exporter: (pid 42912) 1s
    ok: run: sidekiq: (pid 42997) 0s
    ok: run: unicorn: (pid 43007) 0s
    

    八、关闭自带的nginx 使用外部nginx转发

    由于服务器可能还会有其它应用在使用80端口,所以有时需要安装nginx
    关闭自带nginx

    #vi /etc/gitlab/gitlab.rb
    
    
    # 添加本机的IP地址  要与下面配置相对应
    gitlab_rails['trusted_proxies'] = ['127.0.0.1','xxx.xxx.xxx']
    
    #gitlab 环境协议及访问地址
    #【特别提示】该地址将用在nginx 的 upstream 配置中,很重要,网上示例大多都写成了 server 
    # unix:/var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0;,
    # 实际使用会一直返回 nginx 的 502 Bad Gateway 错误,千万注意
    gitlab_workhorse['listen_network'] = "tcp"
    # 下面端口很重要  为nginx中转发的端口
    gitlab_workhorse['listen_addr'] = "127.0.0.1:8888"
    # 修改端口
    #unicorn["port"] = 8080 默认为8080 修改为自己的端口
    unicorn['listen'] = '127.0.0.1'
    unicorn['port'] = 8889
    # 将nginx启动用户加入到gitlab-www组中 非常重要
    web_server['external_users'] = ['nginx','root']
    
    # nginx['enable'] = true  默认是true
    nginx['enable'] = false
    
    # vi /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
    
    listen "127.0.0.1:8889", :tcp_nopush => true
    listen "/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket", :backlog => 1024
    

    在外部nginx配置中加入以下转发
    查看配置详情

    upstream gitlab {
        # 8.0 位置
        server 127.0.0.1:8888;
    }
    server {
        listen *:80;
        server_name gitlab.xxxx.com;   # 修改为配置gitlab时一样的域名
        server_tokens off; 
        root /opt/gitlab/embedded/service/gitlab-rails/public;
        client_max_body_size 250m;
        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 @gitlab {
              proxy_read_timeout 300; # Some requests take more than 30 seconds.
              proxy_connect_timeout 300; # Some requests take more than 30 seconds.
              proxy_redirect     off;
    
              proxy_set_header   X-Forwarded-Proto $scheme;
              proxy_set_header   Host              $http_host;
              # 如果此处配置的是https 则开启下面配置
              # proxy_set_header    X-Forwarded-Ssl     on;
              proxy_set_header   X-Real-IP         $remote_addr;
              proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
              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;
    }
      
    

    下面出现502多半是权限问题,所以更换权限

    # 路径要对,不同的版本路径可能不同
    sudo chmod -R o+x /var/opt/gitlab/gitlab-rails
    sudo chmod -R o+x /var/opt/gitlab/gitlab-workhorse
    

    重启nginx
    重启gitlab

    
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
    # 启用外部nginx
    nginx 
    

    相关文章

      网友评论

          本文标题:Centos7.2 搭建Gitlab并汉化

          本文链接:https://www.haomeiwen.com/subject/qljpmctx.html