Набор реплик MongoDB с простой аутентификацией пароля

У меня есть набор реплик MongoDB из 3 серверов (1 первичный, 1 вторичный, 1 арбитр, это набор реплик по умолчанию, созданный Google Cloud 1-click install). 2 файла конфигурации (mongod.conf) основного сервера и вторичного сервера были изменены с добавлением "security.authorization: enabled".

Пользователь root добавляется со следующей командой оболочки MongoDB:

use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})

После перезапуска служб MongoDB на первичном и вторичном серверах с помощью "sudo service mongod restart" подключение к набору реплик становится неустойчивым.

rs.status() иногда дает результат как

  • 1 первичный, 1 недостижимый, 1 арбитр
  • 1 вторичный, 1 вторичный, 1 арбитр
  • 1 вторичный, 1 недостижимый, 1 арбитр

Как настроить базовую аутентификацию пароля (не используя ключевой файл) для реплики MongoDB правильно установлен?

Ответ 1

Я наконец нашел ответ. Для набора реплик MongoDB необходимы учетная запись пользователя и ключевой файл. Похоже, файл ключей используется для проверки подлинности между серверами в наборе реплик, а не для входа в систему.

Создайте файл ключа mongodb в linux, скопируйте на все серверы БД с неповрежденным режимом 600:

cd
openssl rand -base64 741 > mongodb.key
chmod 600 mongodb.key

файл mongod.conf:

replication:
  replSetName: rs0

security:
  authorization: enabled
  keyFile: /home/USERNAME/mongodb.key

Администратор:

(just like in question content)