gitlab-ctl 在初始安装时创建用户/组时重新配置错误

gitlab-ctl 在初始安装时创建用户/组时重新配置错误

我正在尝试在 RHEL 7.2 (Maipo) 上运行 Gitlab CE。我已经完成了 Gitlab 安装。但是我无法运行sudo gitlab-ctl reconfigure。错误、环境详细信息和我尝试过的操作概述如下。有人知道我遗漏了什么或做错了什么吗?

错误

================================================================================
Error executing action `create` on resource 'user[Webserver user and group]'
================================================================================

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '6'
---- Begin output of ["usermod", "-s", "/bin/false", "-d", "/var/opt/gitlab/nginx", "gitlab-www"] ----
STDOUT:
STDERR: usermod: user 'gitlab-www' does not exist in /etc/passwd
---- End output of ["usermod", "-s", "/bin/false", "-d", "/var/opt/gitlab/nginx", "gitlab-www"] ----
Ran ["usermod", "-s", "/bin/false", "-d", "/var/opt/gitlab/nginx", "gitlab-www"] returned 6

环境

RHEL 7.2 (Maipo),Chef Client,版本 12.12.15(用于输出gitlab-ctl reconfigure

我尝试过的方法

  • 按照安装步骤这里适用于 RHEL 7。
  • 手动添加 gitlab-www 用户:执行此操作时sudo useradd -s /bin/false -d /var/opt/gitlab/nginx gitlab-www出现错误useradd: user 'gitlab-www' already exists。但是我验证了 /etc/passwd 中不存在 gitlab-www 的记录。
  • 重命名 gitlab.rb 中的用户:我在 /etc/gitlab/gitlab.rb 中重命名了以下用户 [git、gitlab-www、git-redis 和 gitlab-psql]。这确实允许我gitlab-ctl reconfigure成功运行,但这似乎是一个超级黑客,我不知道这会对 Gitlab 安装产生什么影响。我不得不重命名所有这些用户,因为重命名 gitlab-www 后,我会在用户 git、git-redis 等上遇到相同的错误。

答案1

当正确创建用户时,它会被添加到两个文件中 -/etc/passwd/etc/shadow。前者包含有关主目录、登录 shell 等的信息;后者包含用户的加密密码。

根据您的描述,我猜测该用户存在于/etc/shadow但不在/etc/passwd

最简单的解决方案是编辑/etc/shadow(使用 sudo)并删除类似以下行

gitlab-www:!!:12345::::::

另一种可能性是手动将用户添加到/etc/passwd。首先,在影子文件中找到 UID:

[jenny@finch ~]$ sudo grep gitlab-www /etc/shadow | cut -d: -f3
12345
[jenny@finch ~]$ sudo vi + /etc/passwd

然后添加以下行:

 gitlab-www:x:12345:12345:Gitlab WWW user:/var/opt/gitlab/nginx:/bin/false

答案2

先停止gitlab服务gitlab-ctl 停止 然后做gitlab-ctl 重新配置完成后,运行命令gitlab-ctl 启动

相关内容