Процедура обновления Unifi AP до версии 3.2.10, UniFi Network
yukon92
Guest
05.05.2015 19:40:00
У меня работает несколько десятков APS на контроллере версии 2.3.9. Вместо обновления могу ли я установить контроллер версии 3.2.10 на новую машину, импортировать базу данных со старой системы и управлять оттуда? Даст ли мне это возможность откатиться к оригинальному компьютеру с контроллером, если на новой системе возникнут проблемы?
Robotech
Guest
18.08.2015 20:17:00
Re: Процедура обновления Unifi AP до версии 3.2.10 22.05.2015 11:25 . Лично я не пробовал. Это больше НЕ СУЩЕСТВУЕТ и не работает.
Robotech
Guest
18.08.2015 19:49:00
Итак, после множества попыток и трудностей у меня есть РЕШЕНИЕ — (Может, сделать это закреплённым? ) Должно работать КАЖДЫЙ РАЗ — немного сложно, но РАБОТАЕТ. (Я делал это на Centos 7, поэтому инструкции для версии 6, но на обеих работает). Оказалось, что при обновлении с 2.X на 3.X есть проблема — с mongod? С unifi? Не знаю, кого винить, но...
Дальше цитата отсюда: Этот человек нашёл проблему и решение — я выкладываю это здесь и надеюсь, что он не против, если что — с удовольствием удалю. Я сделал всё по этой инструкции — и оно работает!!!! Боже! Сколько же времени ушло на поиск информации! Так что респект Роберту Пенцу!!!!!!
Если попробуете обновить систему Ubiquiti Networks Unifi с версии 2.4.6 до 3.2.10, возможно, столкнётесь со следующей проблемой: Exception in thread "launcher" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'class.super': Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: … при попытке запустить unifi так: /usr/bin/java -jar /opt/UniFi/lib/ace.jar start
Поиск в интернете показывает, что проблема распространённая, но работающего решения нигде нет. Вот оно: Причина проблемы очевидна здесь (). По сути, синтаксис команды неправильный. Я начал искать в папке lib файл с этой ошибочной строкой. Он находится внутри /opt/UniFi/lib/ace.jar, так что я установил утилиту jar (на Centos 6) командой: yum install java-1.7.0-openjdk-devel и распаковал все файлы, чтобы найти нужный. Когда нашёл, проще будет сделать так: jar xf ace.jar com/ubnt/A/ooOO/OOoO.class
Теперь понадобится редактор Java-классов — я использовал этот (). Скачайте, распакуйте и запустите: java -jar ce.jar
Дальше ищем и меняем значения: - Кликаем на “Constant Pool” - Вводим db.cache_device.remove в поиске и находим строку 459 - Включаем режим изменения и меняем значения
В итоге должно получиться так (второе — ссылка на первое, просто обновите): classeditor classeditor2
Сохраняем файл и обновляем jar: jar uf ace.jar com/ubnt/A/ooOO/OOoO.class
После этого перезапуск и миграция должны пройти успешно. Надеюсь, это поможет другим — у меня ушёл час, чтобы найти решение, так что теперь у вас всё будет быстрее. 😉
В продолжение скажу, что некоторые команды найти было нелегко — и для работы редактора придётся использовать GUI в Linux, но хуже может быть? Ах да, не забудьте убрать за собой: cd /pathtounifi/lib/ rm -r com
Это удалит распакованные файлы. После запуска контроллера Unifi войдите в систему и обязательно сделайте резервную копию конфигурации!!!
Удачи! И не забудьте порадовать меня лайком, если заработает!
Robotech
Guest
22.05.2015 22:10:00
Ура!!! Большое спасибо — я обязательно поделюсь здесь своим опытом (хорошим или плохим). А ещё постараюсь разработать процедуру и задокументировать её.
flipper
Guest
22.05.2015 18:25:00
Пока сам не пробовал.
Robotech
Guest
22.05.2015 18:10:00
Процедура обновления Unifi AP до 3.2.10 несколько недель назад: У меня несколько десятков точек доступа на контроллере версии 2.3.9. Вместо обновления, могу ли я установить контроллер 3.2.10 на новой машине, импортировать базу данных со старой системы и управлять оттуда? Это даст мне возможность вернуться к старому контроллеру, если в новой системе возникнут проблемы?
Короткий ответ: НЕТ — база данных, похоже, несовместима при переходе с 2.X на 3.X! Думаю, придется «забыть» точки доступа на контроллере 2.X, поставить 3.X и заново их подключать 🙁 Потом, если хотите, обновлять AP. Чёртова ситуация! (Злюсь на обстоятельства, а не на людей) Насколько я понял, НЕТ никакого пути обновления с 2.X на 3.X или даже на 4.X!!! (3.X на 4.X работает, надо заметить, но с 2.X на 4.X — нет, так как нельзя пройти через 3.X).
Это реально отстой. Я искал и искал выход — пытался (на Linux) обновить 2.2.4 до 3.2.10 — база падает. Я даже нашёл старую версию 3.1.9 (уже не на официальных страницах) — не сработало! Пробовал с 2.2.9 — тоже не получилось (даже на Windows бы попробовал, если б работало). Перебрал кучу версий от 2.X до 3.X. Видимо, формат базы данных настолько изменился, что перехода 2.X на 3.X просто нет.
Теперь у меня куча площадок, которые отлично работают годами, но если я захочу обновить их до 3.X ради бесшовного роуминга или других классных фишек, мне придётся переадоптировать КАЖДУЮ точку доступа и настраивать заново — это реально бесит!
Пробовал всякие инструменты для чистки базы, делал бэкапы и импорты, плясал с бубном, даже жертву приносил языческому богу Unifi — что я упускаю??? lol Пожалуйста, если КТО-ТО знает, как обновить 2.X до 3.X — поделитесь, пожалуйста!
Я потерял около 10 часов жизни, гугля возможные решения. Может, я плохо гуглю, но… 🙁
Извиняюсь за раздражение, но если кто-то знает путь с 2 на 3 — я тоже ужасно хочу это узнать! Обещаю сделать пост с инструкцией и скриншотами — мне уже всё равно!
П.С. Очень надеюсь, что я ошибаюсь! Убедите меня в этом! 😛 Спасибо!