Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Как установить Unifi Controller с кастомным путем установки и базой данных, UniFi Network
 
Для установки на Windows

После долгих поисков, вот как я изменил путь к базе данных (и заодно перенёс папку установки).

Здесь есть 2,5 варианта (да, полварианта). Обращайте внимание, в шагах есть тонкие отличия! Большая часть действий выполняется через командную строку.

1. Использовать символическую ссылку (для всей установки)  
- Установите ПО (по умолчанию оно устанавливается в профиль пользователя — C:\Users\<имя_пользователя>\Ubiquiti UniFi)  
- Создайте сервис: Ubiquiti-Run-As-A-Service  
- Остановите сервис: в командной строке — net stop UniFi <Enter>  
- Переместите (не копируйте) папку с установкой туда, где хотите иметь программу «установленной»  
- Вернитесь в дефолтный путь установки: cd C:\Users\<имя_пользователя>  
- Создайте символическую ссылку: mklink /D "Ubiquiti UniFi" "<полный_новый_путь>"  
 Пример: mklink /D "Ubiquiti UniFi" "C:\Program Files\Ubiquiti UniFi"  
- Запустите сервис: net start UniFi

1.5 Использовать символическую ссылку (только для базы данных)  
- Установите ПО (по умолчанию в профиль пользователя - C:\Users\<имя_пользователя>\Ubiquiti UniFi)  
- Создайте сервис: Ubiquiti-Run-As-A-Service  
- Остановите сервис: net stop UniFi  
- Переместите (не копируйте) папку DATABASE туда, где хотите её хранить  
 Пример: move C:\Users\<имя_пользователя>\Ubiquiti UniFi\data\db E:\UbiquitiDB  
- Убедитесь, что папка \db больше не существует в дефолтном месте  
- Вернитесь в дефолтную директорию для DATABASE: cd C:\Users\<имя_пользователя>\Ubiquiti UniFi\data\  
- Создайте символическую ссылку: mklink /D "db" "<полный_новый_путь_к_БД>"  
 Пример: mklink /D "db" "E:\UbiquitiDB"  
- Запустите сервис: net start UniFi

2. Изменить реестр (для всей установки)  
- Установите ПО (по умолчанию в профиль пользователя - C:\Users\<имя_пользователя>\Ubiquiti UniFi)  
- Создайте сервис: Ubiquiti-Run-As-A-Service  
- Остановите сервис: net stop UniFi  
- Переместите (не копируйте) папку с установкой в выбранное место  
- Откройте Regedit и измените два ключа:  
 HKLM\SYSTEM\CurrentControlSet\Services\UniFi — в значении «ImagePath» укажите новый путь  
 Пример: "C:\Program Files\Ubiquiti UniFi\bin\UniFi" //RS//UniFi  
 HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\UniFi  
- В каждом из ключей найдите все записи, указывающие на старое место установки, и измените их на новый путь  
 На момент написания нужно править:  
 HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\UniFi\Parameters\Java\Classpath  
 HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\UniFi\Parameters\Log\Path  
 HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\UniFi\Parameters\Start\WorkingPath  
 HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\UniFi\Parameters\Stop\WorkingPath  
- Запустите сервис: net start UniFi

Преимущества варианта 1  
- Выдерживает обновления  
- Не требует изменений в реестре

Преимущества варианта 1.5  
- Выдерживает обновления, но сохраняет дефолтный путь установки, если есть политика, запрещающая ставить программы на другой диск  
- Не требует изменений в реестре

Преимущества варианта 2  
- Не зависит от конкретного пользовательского аккаунта (места установки) или от жёсткого диска, который слишком мал для базы данных

Особенности  
Вариант 2 не работает для обновления «на месте». Чтобы обойти это, сделайте первые три шага из варианта 2, затем верните папку Unifi обратно в дефолтный путь. Потом запустите инсталлятор. После этого завершите оставшиеся шаги и при необходимости внесите корректировки.

Вы можете использовать любой или все варианты в комбинации, чтобы достичь нужного результата. Например, изменить реестр, чтобы установка не зависела от пользователя, и вместе с этим сделать символическую ссылку, чтобы база данных была на другом диске или в другой папке.

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

Спасибо!
 
Это не поможет вам, когда вы решите обновить приложение. Программа просто перестанет находить каталог установки. Я бы не рекомендовал такое решение, если вы планируете использовать это как установку Unifi Controller на уровне предприятия. Конечно, оно подходит тем, кто пользуется этим время от времени и может просто «настроить и забыть» свои точки доступа. Извиняюсь, что поднял старую тему, но не хочу, чтобы кто-то думал, что это надежное долгосрочное решение.
 
Простая возможность изменить путь установки во время установки (как в миллионах других приложений) была бы лучшим решением. И если можно загадать ещё одно желание: опция портативной установки (без записей в реестр) тоже была бы кстати.
 
Ах... ты имеешь в виду, что первый шаг — скопировать из моей рабочей папки «production» в %ProgramFiles% в папку %UserProfile%, там сделать обновление, а потом обратно скопировать в %ProgramFiles%. Так обновление будет работать с текущей базой данных и не перезапишет никакие настройки. Да, логично. Спасибо!😁
 
Чтобы сделать это, нужно скопировать исходную папку с установкой в %ProgramFiles%, затем выполнить обновление, а после этого скопировать папку обратно в ваше альтернативное расположение. Обновление обязательно должно проходить с оригинальными файлами в папке %ProgramFiles%, чтобы действительно сделать апдейт, а не новую установку.
 
Как гарантировать, что ваша конфигурация (например, имена точек доступа) сохранится после обновления контроллера? Я перенёс установку в %ProgramFiles%, но при каждом обновлении контроллера теряю текущие настройки и приходится восстанавливать резервную копию после запуска нового контроллера.
 
Кто-нибудь знает, как это сделать на Ubuntu/Linux? На основном жестком диске недостаточно свободного места.
 
К вашему сведению, вот ещё один вариант:

https://www.youtube.com/watch?v=80vFlXgbodE
 
Полезная информация, спасибо! По варианту №2: если подождать с выполнением шагов по созданию сервиса до тех пор, пока файлы не будут перемещены в новую папку, команда "java -jar lib\ace.jar installsvc" создаст сервис с использованием пути к новой папке. Таким образом, править реестр (шаг 5) не придётся.
 
Спасибо! Есть ли у кого-то долгосрочный опыт? @Option 2 Когда я не запускаю контроллер как службу, мне не нужно менять какие-либо записи в реестре — верно? Спасибо, с уважением, Мартин
Страницы: 1
Читают тему (гостей: 1)