Контроллер Unifi с контейнером Mongo DBLinux

Ответить
Anonymous
 Контроллер Unifi с контейнером Mongo DB

Сообщение Anonymous »

Я решил запустить Unifi Controller в контейнере Linux, так как я прочитал и погуглил, что он работает только с MongoDB.
Ниже приведен фрагмент compose-docker, который работает отлично, он также запускает оба Unifi Controller. Контейнер MongoDB... но работает только тогда, когда на стороне MongoDB нет типа аутентификации....хорошо, это хорошо, но с точки зрения безопасности это не так хорошо....поэтому я хотел включить аутентификацию в базе данных MongoDB и заставить Unifi Controller выполнять аутентификацию по ней.
  • Я запускаю этот фрагмент через портейнер, как вы можете видеть, моя единственная среда в unifi-контроллере — это >>>> "DB_URI: mongodb://unifi:12345678@test_mongo/unifi
    STATDB_URI: mongodb://unifi:12345678@test_mongo/unifi_stat
    DB_NAME: unifi
  • После запуска этого фрагмента unifi_controller пытаюсь использовать эти учетные записи для входа в базу данных mongo, это невозможно, и это нормально, потому что я не создавал эти учетные записи тем не менее, в mongo db.....mongo db работает нормально без какой-либо аутентификации, в данный момент я проверил через Compass и могу войти в БД
  • собираюсь создать те учетные записи, которые указаны в среде unifi_controller при запуске docker-compose.... сначала я создал учетную запись root в «admin», после этого я создал две учетные записи для базы данных «unifi» и второй для "unifi_stat"....
############################ #####################################

Код: Выделить всё

db.createUser({
user: "root",
pwd: "12345678",  // Replace with a strong passwordd
roles: [{ role: "root", db: "admin" }]
});
"

db.createUser({
user: "unifi",
pwd: "12345678",  // Replace with a strong password
roles: [
{ role: "dbOwner", db: "unifi" },
{ role: "readWrite", db: "unifi" }
{ role: "userAdmin", db: "unifi" },
{ role: "listCollectionsRole", db: "unifi" }, #custom role  ]
});

db.createUser({
user: "unifi",
pwd: "12345678",  // Replace with a strong password
roles: [
{ role: "dbOwner", db: "unifi_stat" },
{ role: "readWrite", db: "unifi_stat" }
{ role: "userAdmin", db: "unifi" },
{ role: "listCollectionsRole", db: "unifi" }, #custom role
]
});
##################################### ############################
  • < li>окей, на данный момент все хорошо, unifi_controller удалось войти в систему с этими учетными данными и автоматически создавать базы данных "unifi" и "unifi stats"..... но я "аутентификация в данный момент все еще отключена"
  • в portainer перешел в контейнер «mongo» и в поле команды добавил «--auth», и теперь он выглядит так: «mongod» «--auth»......
  • перезапустил контейнер mongo, контроллер unifi может успешно войти в систему и аутентифицироваться, что я вижу в журналах Mongo.
** но проблема в том, что здесь **

Код: Выделить всё

Caused by: com.mongodb.MongoCommandException: Command failed with error 13 (Unauthorized): 'not authorized on unifi_stat to execute command { listCollections: 1, cursor: {}, nameOnly: true, $db: "unifi_stat", lsid: { id: UUID("ae95edea-70d5-4427-9780-3549e80deecb") } }' on server test_mongo:27017.  The full response is {"ok": 0.0, "errmsg": "not authorized on unifi_stat to execute command { listCollections: 1, cursor: {}, nameOnly: true, $db: \"unifi_stat\", lsid: { id: UUID(\"ae95edea-70d5-4427-9780-3549e80deecb\") } }", "code": 13, "codeName": "Unauthorized"}

Код: Выделить всё

[conn105] Unauthorized: not authorized on unifi_stat to execute command { listCollections: 1, cursor: {}, nameOnly: true, $db: "unifi_stat", lsid: { id: UUID("0461caa4-467a-4234-bb71-07d41a1218ad") } }
================================= =============================================== =======

Код: Выделить всё

version: '2.3'
services:
mongo:
image: mongo:3.6
container_name: ${COMPOSE_PROJECT_NAME}_mongo
restart: always
volumes:
- db:/data/db
- dbcfg:/data/configdb
controller:
image: "jacobalberty/unifi:${TAG:-latest}"
container_name: ${COMPOSE_PROJECT_NAME}_controller
depends_on:
- mongo
init: true
restart: always
volumes:
- dir:/unifi
- data:/unifi/data
- log:/unifi/log
- cert:/unifi/cert
- init:/unifi/init.d
- run:/var/run/unifi
# Mount local folder for backups and autobackups
- ./backup:/unifi/data/backup
user: unifi
sysctls:
net.ipv4.ip_unprivileged_port_start: 0
environment:
DB_URI: mongodb://unifi:12345678@test_mongo/unifi?authSource=unifi
STATDB_URI: mongodb://unifi:12345678@test_mongo/unifi_stat?authSource=unifi_stat
DB_NAME: unifi

ports:
- "3478:3478/udp" # STUN
- "6789:6789/tcp" # Speed test
- "8080:8080/tcp" # Device/ controller comm.
- "8443:8443/tcp" # Controller GUI/API as seen in a web browser
- "8880:8880/tcp" # HTTP portal redirection
- "8843:8843/tcp" # HTTPS portal redirection
- "10001:10001/udp" # AP discovery
logs:
image: bash
container_name: ${COMPOSE_PROJECT_NAME}_logs
depends_on:
- controller
command: bash -c 'tail -F /unifi/log/*.log'
restart: always
volumes:
- log:/unifi/log

volumes:
db:
dbcfg:
data:
log:
cert:
init:
dir:
run:
Я уже не знаю, что именно мне стоит попробовать

Подробнее здесь: https://stackoverflow.com/questions/792 ... -container
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»