服务器上在安装gitlab之前,已提前安装好nginx服务!!!

upstream gitlab {
    # 端口对应 gitlab 配置中的 nginx['listen_port']
    server 127.0.0.1:8282;
}

server{
    listen 80;
    # 此域名是提供给最终用户的访问地址。域名对应 gitlab配置中的 external_url
    server_name gitlab.company.com;

    location / {
        # 这个大小的设置非常重要,如果 git 版本库里面有大文件,设置的太小,文件push 会失败,根据情况调整
        client_max_body_size 500m;
        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://gitlab;

        index index.html index.htm;
    }
}

一、程序安装程序源信息:

  清华:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/

  官网:https://packages.gitlab.com/gitlab/gitlab-ce

二、ubuntu系统(本人系统ubuntu 18.04)

1. 查看系统信息

uname -a

lsb_release -a

2.安装

(根据具体情况可选操作)新安装之前,可以先检查是否有历史版本,可以进行关闭服务并进行卸载。

停止: sudo gitlab-ctl stop
卸载服务: sudo gitlab-ctl uninstall
清除相关数据: sudo gitlab-ctl cleanse
清除账号数据: sudo gitlab-ctl remove-accounts
删除安装包: sudo dpkg -P gitlab-ce
查询相关的剩余文件进行rm删除: find / -name "gitlab"

2.1 安装

  2.1.1 线下安装方式:

    2.1.1.1 下载最新版本的程序

清华:sudo wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/bionic/main/g/gitlab-ce/gitlab-ce_15.10.0-ce.0_amd64.deb

官网:sudo wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_15.10.0-ce.0_amd64.deb/download.deb

    2.1.1.2 安装deb文件

sudo dpkg -i gitlab-ce_15.10.0-ce.0_amd64.deb

如果运行dpkg报openssh-server相关的错误:
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade

  2.1.2 直接命令安装

sudo apt-get install gitlab-ce=15.10.0-ce.0

三、配置及维护

1. 修改配置文件:

sudo vim /etc/gitlab/gitlab.rb

修改内容(与文章开头中的nginx配置有要对应):

# 15.10.0版本中大概在29行左右
external_url 'http://gitlab.company.com'

# 15.10.0版本中大概在1227行左右
nginx['listen_port'] = 8282

2. 服务器gitlab环境配置:

sudo gitlab-ctl reconfigure ​

3. 启动gitlab服务:

sudo gitlab-ctl start

4. gitlab服务维护常用命令:

配置服务器gitlab环境:sudo gitlab-ctl reconfigure ​
停止gitlab服务:sudo gitlab-ctl stop ​
启动gitlab服务:sudo gitlab-ctl start
重启gitlab服务:sudo gitlab-ctl restart ​
开机自启动:sudo systemctl enable gitlab-runsvdir.service
手动备份:sudo gitlab-rake gitlab:backup:create
查看版本:cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

5. 关闭用户注册功能:

使用root登录成功后,在浏览器控制台进行配置即可。

四、修改root密码

cd /opt/gitlab/bin

# production命令执行时间比较长,需要等待ruby控制台。成功后会显示:irb(main):001:0>
root@iZ...wZ:/opt/gitlab/bin# sudo gitlab-rails console -e production
--------------------------------------------------------------------------------

 Ruby:         ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [x86_64-linux]

 GitLab:       15.10.0 (496a1d765be) FOSS

 GitLab Shell: 14.18.0

 PostgreSQL:   13.8

------------------------------------------------------------[ booted in 40.37s ]
Loading production environment (Rails 6.1.7.2)
irb(main):001:0> User.all
=> [#<User id:1 @root>]
irb(main):002:0> user=User.where(id:1).first
=> #<User id:1 @root>
irb(main):003:0> user.password='123'
=> "123"
irb(main):004:0> user.password_confirmation='123'
=> "123"
irb(main):005:0> user.save!
/opt/gitlab/embedded/lib/ruby/gems/3.0.0/gems/activerecord-6.1.7.2/lib/active_record/validations.rb:80:in `raise_validation_error': Validation failed: Password is too short (minimum is 8 characters) (ActiveRecord::RecordInvalid)

irb(main):006:0> user.password='company123'
=> "company123"
irb(main):007:0> user.password_confirmation='company123'
=> "company123"
irb(main):008:0> user.save!
=> true
irb(main):009:0>exit

五、升级

gitlab软件的升级比较特殊,在当前的版本上要根据制定的升级路径进行多次操作完成升级到最新版本。升级路径:https://docs.gitlab.com/ee/update/index.html#upgrade-paths

升级前切记及时做好备份!!!

升级思路:根据官网说明的路径,先升级到每个小版本中的最新版本,然后在升级到下一个版本。

升级步骤:

1. 线下wget下载指定版本程序。同上面:2.1.1.1说明

2. dpkg进行安装。同上面:2.1.1.2说明

3. (高版本中第2步以执行此步骤,无需手动执行) 重新配置环境 sudo gitlab-ctl reconfigure 

4. (高版本中第2步以执行此步骤,无需手动执行) 重新启动 sudo gitlab-ctl restart

5. 多次重复上面4点,升级到自己想要的高版本

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐