Привет! С тех пор, как я обновил свой CK-G2+ до UniFi OS, я потерял весь контроллер доступа. Когда я спросил у сотрудников UI о пути миграции, мне ответили, что его нет. Я был очень разочарован таким бездумным решением от UI, поэтому решил провести миграцию самостоятельно. Система доступа установлена у нас в офисе, и к ней имеют доступ курьеры, поставщики и сотрудники. Я даже не могу представить, как бы мне пришлось заново сканировать все эти NFC-метки.
P.S. Чтобы повторно подключить UAHUB к новому контроллеру, нужно сделать полный сброс настроек.
Программное обеспечение, которое вам понадобится:
- SQLite browser (я использовал DB browser for SQLite)
- PostgreSQL explorer (я использовал NaviCat)
Шаг 1 – Скачайте и распакуйте вашу резервную копию до UniFi OS и найдите файл ual.db
Шаг 2 – Настройка Postgres для удалённого доступа на CK-G2+
Подключитесь по SSH к cloudkey
Отредактируйте файл /etc/postgresql/9.6/main/postgresql.conf
Добавьте строку: listen_addresses = '*'
Отредактируйте файл /etc/postgresql/9.6/main/pg_hba.conf
Добавьте в конец:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
Переключитесь на пользователя postgres: sudo -i -u postgres
Запустите psql: postgres
Создайте нового пользователя с паролем:
CREATE USER username WITH SUPERUSER PASSWORD 'password';
Выйдите из psql: \q и из пользователя postgres
Перезапустите postgres: /etc/init.d/postgresql restart
Проверьте подключение к базе данных
Шаг 3 – Импортируйте профиль пользователя в новый контроллер UniFi Access
Экспортируйте таблицу USER_PROFILE из ual.db и создайте CSV-файл с именами (first_name) и фамилиями (last_name)
Графики и политики придётся создавать вручную
Шаг 4 – Привяжите NFC-метку к пользователю
Я назначил NFC-метку, которую никто не использовал.
После этого посмотрите номер карты в контроллере доступа (1XXXXX)
Шаг 5 – Подключитесь к базе PostgreSQL
Откройте базу unifi-access
Откройте таблицу user_nfc
ID = номер карты в access
token = NFC токен
Шаг 6 – Получите значение NFC токена
Откройте ual.db
Откройте таблицу user_profile и найдите user_id пользователя, которому вы назначили NFC в шаге 4
Откройте таблицу user_nfc и найдите nfc_card_data, где worker_id = только что найденный user_id
Скопируйте это значение
Шаг 7 – Отредактируйте NFC токен
Вставьте nfc_card_data в базу PostgreSQL (Шаг 5)
Повторяйте шаги с 4 по 7 для каждого пользователя. Как только у вас будет четкий алгоритм, процесс пойдет довольно быстро. Я сделал 20 пользователей за 30 минут. Самая долгая часть — каждый раз сканировать новую метку.
Если есть вопросы — спрашивайте.
С уважением, iLevac
P.S. Чтобы повторно подключить UAHUB к новому контроллеру, нужно сделать полный сброс настроек.
Программное обеспечение, которое вам понадобится:
- SQLite browser (я использовал DB browser for SQLite)
- PostgreSQL explorer (я использовал NaviCat)
Шаг 1 – Скачайте и распакуйте вашу резервную копию до UniFi OS и найдите файл ual.db
Шаг 2 – Настройка Postgres для удалённого доступа на CK-G2+
Подключитесь по SSH к cloudkey
Отредактируйте файл /etc/postgresql/9.6/main/postgresql.conf
Добавьте строку: listen_addresses = '*'
Отредактируйте файл /etc/postgresql/9.6/main/pg_hba.conf
Добавьте в конец:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
Переключитесь на пользователя postgres: sudo -i -u postgres
Запустите psql: postgres
Создайте нового пользователя с паролем:
CREATE USER username WITH SUPERUSER PASSWORD 'password';
Выйдите из psql: \q и из пользователя postgres
Перезапустите postgres: /etc/init.d/postgresql restart
Проверьте подключение к базе данных
Шаг 3 – Импортируйте профиль пользователя в новый контроллер UniFi Access
Экспортируйте таблицу USER_PROFILE из ual.db и создайте CSV-файл с именами (first_name) и фамилиями (last_name)
Графики и политики придётся создавать вручную
Шаг 4 – Привяжите NFC-метку к пользователю
Я назначил NFC-метку, которую никто не использовал.
После этого посмотрите номер карты в контроллере доступа (1XXXXX)
Шаг 5 – Подключитесь к базе PostgreSQL
Откройте базу unifi-access
Откройте таблицу user_nfc
ID = номер карты в access
token = NFC токен
Шаг 6 – Получите значение NFC токена
Откройте ual.db
Откройте таблицу user_profile и найдите user_id пользователя, которому вы назначили NFC в шаге 4
Откройте таблицу user_nfc и найдите nfc_card_data, где worker_id = только что найденный user_id
Скопируйте это значение
Шаг 7 – Отредактируйте NFC токен
Вставьте nfc_card_data в базу PostgreSQL (Шаг 5)
Повторяйте шаги с 4 по 7 для каждого пользователя. Как только у вас будет четкий алгоритм, процесс пойдет довольно быстро. Я сделал 20 пользователей за 30 минут. Самая долгая часть — каждый раз сканировать новую метку.
Если есть вопросы — спрашивайте.
С уважением, iLevac
