Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误

CentOS 7搭建GitLab(非Docker)

前言:实验室的一台服务器终于崩掉了,连带上面的gitLab也没了,之前是用docker搭的几行命令搞定,这次刚好重新搭一个吧

服务器配置:(推荐内存4G以上)

  • OS版本:CentOS 7.5.1804
  • CPU: AMD Opteron™ Processor 6128
  • 内存:32G
  • 硬盘:1.5T

首先上官方安装文档

一. 安装以及配置必要的依赖

## 1. 安装ssh服务
sudo yum install -y curl policycoreutils-python openssh-server
## 2. 将ssh服务设置为开机自启动
sudo systemctl enable sshd
## 3. 手动开启ssh服务
sudo systemctl start sshd
## 4. 配置防火墙
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

由于ssh服务已经启动了,在这里我只执行了第一步
Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第1张图片

## 	1. 安装postfix发送邮件
sudo yum install postfix
## 	2. 将postfix设置为开机自启动
sudo systemctl enable postfix
##	 3. 手动开启postfix
sudo systemctl start postfix

Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第2张图片

二. 添加GitLab仓库并安装

1. 添加GitLab仓库并安装

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
## 这里稍微久一点,需要个十分钟吧,安装完后会出现下图
sudo yum install -y gitlab-ee

Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第3张图片

2. 指定服务器ip以及重新配置端口

vim  /etc/gitlab/gitlab.rb
## 修改完后重新启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

在这里插入图片描述
默认端口80,8080往往被占用,需要自定义为其他端口,并设置防火墙开放相应端口
在这里插入图片描述
Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第4张图片

3. 启动报错

下面是错误输出:
Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第5张图片

错误分析:

	在确认/var/opt/gitlab/.ssh的所属用户和组是git:git时报错

错误解决:

       在网上查找时,发现一篇博客出现了同样问题,该博主去gitlab官网上提交了issue,然而并没有直接给出解决方案。下面是我自己的解决方案:

  1. /var/opt/gitlab/.ssh的所有者和用户组都是git,并确保父路径也是可以访问的,这里是没有问题的。
    在这里插入图片描述

  2. 然后根据错误提示输入如下命令,使用stat命令来查看.ssh文件夹的信息,可以看到输出了正确的用户和组git:git

/bin/sh
## 当前用户是root
whoami
## stat命令类似ls,可以查看更具体的信息,而readlink则是根据链接直接查找源文件
stat --printf='%U:%G %04a' $(readlink -f /var/opt/gitlab/.ssh)

在这里插入图片描述
3. 切换到用户git,使用相同命令,可以看到用户组有输出,但用户名没了,原因是普通用户没有读取/etc/passwd的权限,因此无法根据用户id来获得用户名
在这里插入图片描述
4. 赋予普通用户passwd读权限(但感觉有点问题),然后可以看到git用户下的输出也正确了
chmod 644 /etc/passwd
Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第6张图片
在这里插入图片描述

4. 重装后正常启动

       再次运行gitlab-ctl reconfigure命令貌似还不行,不过上面的问题已经解决了,直接卸载重装,gitlab可以正常运行了。(如果报502等错误,记得修改默认端口)

Gitlab搭建以及解决Failed asserting that ownership of /var/opt/gitlab/.ssh was git:git错误_第7张图片

你可能感兴趣的:(环境搭建)