Ubuntu18.04服务器上搭建GitLab仓库、管理员密码重置以及Gitlab卸载及本地安装指定版本Gitlab

一、Ubuntu18.04服务器上搭建GitLab仓库及管理员密码重置

首先安装一些基础服务,openssh-server让远程主机可以通过网络访问sshd服务,开始一个安全shell,ca-certificates维护SSL证书的。postfix是GPL协议之下的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在安装postfix,选择 Internet Site确定即可。

bash 复制代码
#安装一些基础服务
apt-get update
apt-get install -y curl openssh-server ca-certificates postfix

#接着下载gpg信任GitLab的公钥
curl https://packages.gitlab.com/gpg.key 2> /dev/null | apt-key add - &>/dev/null  

#配置镜像路径为国内仓库,以名国外的下载速度慢。根据系统版本添加对应URL如下
vim /etc/apt/sources.list.d/gitlab-ce.list
#添加以下内容
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main

上面这些工作做好之后就可以开始安装gitlab-ce

bash 复制代码
apt-get update
apt-get install gitlab-ce
#执行配置后启动gitlab
gitlab-ctl reconfigure
gitlab-ctl start

这里安装的是GitLab Community Edition 13.12.8版本,然后使用http://IP地址 即可浏览访问。第一次进入界面,需要两次输入以初始化管理员密码,登录账号是root。这样gitlab已安装成功。gitlab的配置文件路径/etc/gitlab/gitlab.rb ,可在其中配置gitlab的端口和地址。每次配置有更改,需要执行 gitlab-ctl reconfigure 加载新的配置。gitlab常用命令列表如下:

gitlab-ctl stop #停止

gitlab-ctl start #启动

gitlab-ctl restart #重启

gitlab-ctl status #查看状态

gitlab-ctl reconfigure #更新配置

gitlab-ctl tail #查看日志

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看GitLab 版本号

在维护过程 中如果忘了帐户的密码,可以使用gitlab-rails来重置管理员密码。

bash 复制代码
#执行命令
# gitlab-rails console
Ruby:         ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
#查找用户
irb(main):001:0> user = User.where(username: 'root').first
=> #<User id:1 @root>
#修改密码
irb(main):002:0> user.password = '123456'
=> "123456"
#保存密码修改
irb(main):003:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID:) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change"..
=> true

二、Gitlab卸载及本地安装指定版本Gitlab

因Gitlab整体数据迁移需要两边版本一致,如果版本不同,会在数据导入的时候报错版本不匹配:Unpacking backup ... done

GitLab version mismatch:

Your current GitLab version (13.12.8) differs from the GitLab version in the backup!

Please switch to the following version and try again:

version: 13.3.5-ee

所以准备卸载之前安装的gitlab,并更换成另一个版本。停止服务并卸载过程:

bash 复制代码
gitlab-ctl stop
gitlab-ctl uninstall
dpkg -r gitlab-ce
ps -ef |grep gitlab

安装当然可以使用脚本直接执行安装,我这里是直接下载安装包。安装包下载地址:gitlab/gitlab-ce - Packages · packages.gitlab.com 对于每一个版本在Distro/Version列都有ubuntu/xenial,ubuntu/bionic,ubuntu/focal三个细分版本。它们是ubuntu的代号。在ubuntu服务器上执行 lsb_release -a可以查看到当前服务器版本的代号Codename。

lsb_release -a

Codename: bionic

因此我这里下载时就下载ubuntu/bionic对应的版本。
gitlab/gitlab-ce - Results for '13.3.5' and ubuntu in gitlab/gitlab-ce

下载完成后进行本地安装

dpkg -i gitlab-ce_13.3.5-ce.0_amd64.deb

不过在这里也碰到了一个问题,我在上面的网址里下载的deb文件安装时提示deb文件不是一个有效的包,dpkg-deb: error: 'gitlab-ce_13.3.5-ce.0_amd64.deb' is not a Debian format archive。看文件大小只有15K,之后我在另一个网址Index of /gitlab-ce/ubuntu/pool/xenial/main/g/gitlab-ce/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 里下载的,地址如下:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/gitlab-ce/gitlab-ce_13.3.5-ce.0_amd64.deb 文件大小有700M+。

bash 复制代码
#修改配置文件,加载配置并启动gitlab
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
gitlab-ctl status
相关推荐
舒一笑19 小时前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
梦想很大很大2 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair2 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主2 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
茶杯梦轩2 天前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
甲鱼9293 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
YuMiao4 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
碳基沙盒5 天前
OpenClaw 多 Agent 配置实战指南
运维
Sinclair7 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器