搭建gitlab服务

孤雪飘寒 2019-06-25

服务器快速搭建gitlab方法

可以参考gitlab中文社区的教材

中文网:https://www.gitlab.com.cn/ins...

文档:https://gitlab.com/gitlab-org...

1.什么是gitlab版本管理

太过官方的解释,随便百度一下一堆。。。我也Google一下。。

GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

其实我感觉最简单暴力的理解就是:Gitlab 就是以网站的形式将 Git 服务端可视化;

2.gitlab的安装

其实gitlab可以很复杂也可以很简单:

第一种方法:

说白了其实gitlab就是一个web端,打散后其实也是由(nginx,gitaly,redis,gitlab-workhorse...)等这些东西构成;所以你可以一个个组装一个个编译安装;这样你也可以深入去了解gitlab,同时也可以达到最简化(将不必要的东西去掉)

第二种方法:

rpm 安装。。。官方和社区都有提供。。

如果你是爱折腾的小伙伴,那你可以尝试第一种途径。。途中你会发现各种挑战,各种问题。。然后你一一努力解决,从中获取巨大的成就感。。最后放弃了,还是觉得 用rpm安装算了。。。(我就是这样!!O(∩_∩)O哈哈~)。。。

下面主要是第二种的安装介绍:

我用的是 centos7 的环境

1.安装并配置必要的依赖关系

如果你想使用 Postfix 发送邮件,请在安装过程中根据提示选择 'Internet Site'。 你也可以用 Sendmail 或者 配置一个自定义的 SMTP 服务 并 把它作为一个 SMTP 服务器。

在 CentOS 系统上,下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问。

sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2. 添加 GitLab 镜像源并安装
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

如果你不太习惯使用命令管道的方式安装镜像仓库,你可以在这里找到 完整的安装脚本 或者 选择系统对应的安装包 使用下面的命令手动安装。

curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm
rpm -i gitlab-ce-XXX.rpm

我就是用这种。。。

3. 配置并启动 GitLab
sudo gitlab-ctl reconfigure
4.通过域名可以访问

第一次访问 GitLab,系统会重定向 url 到重置密码的页面,你需要输入初始化管理员账号的密码。 设置完成后,系统会重定向到登录界面,你就可以使用刚才输入的密码登录系统了。

系统默认的管理员账号为 root, 登录系统后,你可以修改管理员账号为自己喜欢的账号

2.端口冲突问题

装好后,你会发现一个问题;gitlab 其实是个web;他自带了个nginx;如果你本身也是一台服务器的话,上面也会装有 apache 或者 nginx 等;那么端口就冲突了;

以上的情况解决方案也有连个:(我就想到这两个)

第一种:
禁用 gitlab 自带的 nginx,使用我们自己安装的 nginx。。。(然而我不太建议小白用这个方法;)
第二种:
更改gitlab自带nginx的默认端口,域名加端口访问就好;当然如果你是有强迫症的朋友(我就是不要输入端口),也不是没有办法。你可以在你的服务器上配置代理服务器;

我用的就是第二种方法(我服务器上用的是nginx):

1.修改 gitlab 配置

官方安装方式下,配置文件是/etc/gitlab/gitlab.rb

- gitlab nginx 端口监听修改
        nginx['listen_port'] = 端口号
- gitlab 的域名
        external_url '域名'

修改完毕后重置下gitlab:

gitlab-ctrl reconfigure

2.添加 nginx 代理服务器配置

upstream  git{
    # 域名对应 gitlab配置中的 external_url
    # 端口对应 gitlab 配置中的 nginx['listen_port']
    server  域名:端口;
}


server{
    listen 80;
    # 此域名是提供给最终用户的访问地址
    server_name 域名;

    location / {
        # 这个大小的设置非常重要,如果 git 版本库里面有大文件,设置的太小,文件push 会失败,根据情况调整
        client_max_body_size 50m;

        proxy_redirect off;
        #以下确保 gitlab中项目的 url 是域名而不是 http://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;
        # 反向代理到 gitlab 内置的 nginx
        proxy_pass http://git;
        index index.html index.htm;
    }
}

相关推荐

就是那个胖子 / 0评论 2020-06-15