我正在尝试在 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 启动