基于树莓派ubuntu20.04搭GitLab服务器

1. 安装和配置必要的依赖项

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

接下来,安装 Postfix 以发送通知电子邮件。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装 GitLab 后配置外部 SMTP 服务器。

sudo apt-get install -y postfix

在 Postfix 安装过程中,可能会出现一个配置屏幕。选择“Internet site”并按 Enter。将您服务器的外部 DNS 用于“邮件名称”,然后按 Enter。如果出现其他屏幕,请继续按 Enter 接受默认值。

up-e04bbf68995a99b49b46f8ebf029dc87e50.png

up-460c80a4c872a51e0b2920ce252febd89c4.png

2. 下载安装包

https://packages.gitlab.com/gitlab/gitlab-ce (具体需要哪一个可以上官网查看,有树莓派版本)

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/buster/gitlab-ce_13.12.8-ce.0_arm64.deb/download.deb

3. 安装deb包

 sudo dpkg -i gitlab-ce_13.12.8-ce.0_arm64.deb

这个包有800多MB,包含很多个文件,因此安装会有些慢,卡在下面这步是正常的,耐心等待一下。

安装完成提示信息:

up-310c10bb7e38fd0d49550e0900835090ebe.png

还没完,根据提示需要修改 /etc/gitlab/gitlab.rb 配置文件中的 external_url 来配置自己的hostname

/etc/gitlab/gitlab.rb

up-6093b391bb1059a1e893fc2f39812bb82a9.png

修改为自己的域名后,执行

sudo gitlab-ctl reconfigure

看到如下提示就配置完成了

up-204af6af6e1ddeaf582ef4f1ccc871ad5d8.png

4.初始设置

管理员用户是root
首次登录后会要求修改密码(8位及以上)

在浏览器访问Raspberry Pi的IP,会跳转到设定密码的页面。

up-825a9dd822dba00c9ff7e888cb5566b458f.png

设定完成后,用新密码登录root用户。

up-32daf44374977874d113545292cea4028b3.png

这是管理员用户,只用它来添加普通用户,在普通用户里新建仓库来托管代码。
点击界面右上角的小扳手图标,进入Admin Area,这是管理员独有的区域。
在user里新建一个普通用户。

up-a7dc7b677dada6928561947acc238bee23f.png

普通用户的密码会发送到邮箱,如果之前邮箱没配置好,可能会收不到,或者如果是内网使用,邮件也无法发出。这个问题可以这样解决:

up-e7c0bf84909d5776f6ed1a02f2e272ae528.png

管理员里可以用管理权限修改这个用户的密码,改完后告诉该用户这个密码,该用户在首次登录后,会被提示设置一个新密码。

如果以后使用时该用户忘记了密码,管理员也可以登录Admin Area重置。
这样就不需要邮件来重置密码,缺点是需要管理员介入,对于中小团队这样的管理方法是可取的(可以由项目组织者充当管理员)。
另外在Admin Area界面左侧有个齿轮形状的图标,点击这里可以修改一些全局设定(包括前面初始的Projects limit等), 根据提示修改就行了。

up-a930d530a8a83de3e15bd8485f177cbfd1c.png

修改服务端口

默认使用80端口,如果需要修改,可以修改 /etc/gitlab/gitlab.rb 中如下两处地方,比如这样就修改成了50000端口。

sudo vim /etc/gitlab/gitlab.rb

up-cccdb47c89d1db6878bcef25552efcf917f.png

up-fe835f5aedd875f8d71e0a1bec5286ec85a.png

两处都需要修改。

如果需要修改 gitlab-rails 所占用的8080端口,可以修改下面的地方

up-42eeb5365beed1c1a22e448e9fd7178e0ae.png

注意保存文件后,要运行如下命令使得配置生效:

sudo gitlab-ctl reconfigure

一些实用的维护命令

#修改任何配置文件后都要输入如下命令使配置生效。
sudo gitlab-ctl reconfigure
 
#页面缓存清除:
sudo gitlab-rake cache:clear RAILS_ENV=production
 
#GitLab各组件启动:
sudo gitlab-ctl start
 
#GitLab各组件停止:
sudo gitlab-ctl stop
 
#GitLab各组件重启:
sudo gitlab-ctl restart
 
#禁用GitLab开机自启动:
sudo systemctl disable gitlab-runsvdir
 
#启用GitLab开机自启动:
sudo systemctl enable gitlab-runsvdir

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

搭建中遇到的问题

502

当我们成功安装、配置 GitLab 后,不一定就万事大吉了,访问 GitLab 的时候可能会出现如下错误

up-a86e1a781d36476f4dc21f730ce93b16284.png

GitLab 新装或重启后,需要等待 1 分钟以上才能使用,总之资源紧张的时候多等等

日常维护

重置管理员的密码

由于 root 账户用的很少,所以我们容易忘记它的密码,但不代表它不重要,类似 linux 的 root 账户;一旦我们忘记了 root 账号的密码,我们需要知道重置的方法,方法如下

1、进入 GitLab 控制台

[root@localhost ~]# gitlab-rails console -e production

GitLab 版本不同,命令会有所不同(网上说的而基本都是gitlab-rails console production ),推荐大家直接上 GitLab 官网去找对应版本的命令
我测是使用gitlab-rails console production是进不去GitLab 控制台的

up-f6e500ceaba7834b1bbe27831a47c08d150.png

当出现如下信息表示我们成功登入控制台

[root@localhost ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 GitLab:       12.8.7 (b679f55a199) FOSS
 GitLab Shell: 11.0.0
 PostgreSQL:   10.12
--------------------------------------------------------------------------------
Loading production environment (Rails 6.0.2)
irb(main)

执行命令: user = User.where(id: 1).first,此 user 则表示 root 用户

3、修改密码

执行命令: user.password = 'secret_pass'  修改密码,  user.password_confirmation = 'secret_pass' 确认密码

4、保存密码

执行命令: user.save!

5、退出控制台

执行命令: exit

官方示例:How to reset your root password

重置成功后,我们就可以用新密码来登录 root 账号了

重制其他用户密码:

1、登陆控制台

root@gitlab:/# gitlab-rails console -e production
Loading production environment (Rails 4.2.10)

2、通过邮箱找到用户

irb(main):003:0> user=User.where(email:'[email protected]').first
=> #<User id:12 @jenkins>

3、重置密码并保存

irb(main):005:0> user.password=12345678
=> 12345678
irb(main):006:0> user.password_confirmation=12345678
=> 12345678
irb(main):007:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: 53d8c7ea-c523-43a1-a5e6-032c836f4870) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/22
=> true

参考

GitLab → 搭建中常遇的问题与日常维护

Guess you like

Origin blog.csdn.net/qq_25231683/article/details/120017004