Возможно ли это, и как бы вы поступили следующим образом.
У меня есть 2 сервера (1 основной, а другой - резервный) и множество устройств, подключенных к этим серверам . Я хотел бы настроить загрузку по сети (возможно, используя PXE, DHCP или другой метод). В частности, мне нужно использовать IP / адрес порта, потому что эти устройства могут быть заменены (поэтому о физическом MAC-адресе не может быть и речи). Детали среды и то, что я пробовал, изложены ниже. Кто-нибудь знает, что мне не хватает или что я делаю неправильно?
================================================================================
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
output)
sudo useradd -s / bin / false -d / var / opt / gitlab / nginx gitlab-www
Я получаю сообщение об ошибке useradd: пользователь 'gitlab-www' уже существует
. Однако я подтвердил, что запись для gitlab-www не существует в /etc/passwd. gitlab-ctl reconfigure
, но это похоже на суперхак, и я не знаю, как это повлияет на установку Gitlab. Мне пришлось переименовать всех этих пользователей, потому что после переименования gitlab-www я получал ту же ошибку с пользователем git, затем git-redis и т. Д. Когда пользователь создан правильно , он добавляется в два файла - / etc / passwd
и / etc / shadow
. Первый содержит информацию о домашнем каталоге, оболочке входа и т. Д .; последний содержит зашифрованный пароль для пользователя.
Из вашего описания я должен предположить, что пользователь существует в / etc / shadow
, но не в / etc / passwd
. . 1215] Самое простое решение - отредактировать / 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