====== Unicorn Teleport - міграція на новий хост ======
**Важливо:** перед збиранням пакунку міграції, необхідно оновити ваш поточний біллінг до останньої **нічної** збірки.
Знаходиться в "Консолі Розробника"
{{:unicornteleport0.png|}}
ось тут
{{:unicornteleport1.png|}}
Тут можна відмітити, куди ми зібрались телепортувати наш Ubilling і які саме дані резервувати.
{{:unicornteleport2.png|}}
Збирання пакунку телепорту може зайняти деякий час, і повинна завершитись якось так
{{:unicornteleport3_s.png|}}
Можете собі його завантажити з веб-інтерфейсу
{{:unicornteleport4.png|}}
або можете одразу залити пакунок телепорту, напряму з білінгового сервера на новий хост (якщо він доступний звідти)
scp /usr/local/www/apache24/data/billing/exports/unicornteleport.tgz 192.168.0.223:/tmp/
Ну або завантажити собі і залити його потім куди вам треба
scp unicornteleport.tgz 192.168.0.223:/tmp/
(тут сподіваюсь очевидно, що 192.168.0.223 це IP нового, сервера з чистою FreeBSD 14.3 для прикладу?)
====== Крок 1. Розпакування пакунку телепорту ======
$ ssh 192.168.0.223
$ su
# cd /tmp/
# tar zxvf unicornteleport.tgz -C /usr/local/
# cd /usr/local/unicornteleport
всередині лежить файлик README, з детальними інструкціями, що до розгортання пакунку телепортації в декілька простих кроків. Якогось такого вмісту:
# Unicorn Teleport Guide
To migrate your Ubilling 1.5.9 rev 9494 with serial UB45fc024bbb2632be0b3de41ff8a8b15b as it was by 2025-11-25 14:19:04 to another host, make following actions:
## Step 1: Extract teleport package
tar zxvf unicornteleport.tgz -C /usr/local/
cd /usr/local/unicornteleport
## Step 2: Install base system
fetch http://snaps.ubilling.net.ua/ubinstaller_current.tar.gz
tar zxvf ubinstaller_current.tar.gz
cd ubinstaller
sh Batchinstaller.sh MIG 143_6L CURRENT em0 em1 mys123456 stg123456 rsd123456 UB45fc024bbb2632be0b3de41ff8a8b15b
## Step 3: Restore database data and configurations
cd /usr/local/unicornteleport
mysql --host localhost -u root -pmys123456 stg < unicornteleport.sql
tar zxvf wwwdata.tgz -C /usr/local/www/apache24
tar zxvf apache_conf.tgz -C /usr/local/etc
tar zxvf rcconf.tgz -C /etc
tar zxvf firewallconf.tgz -C /etc
tar zxvf stgconfig.tgz -C /etc
/usr/bin/crontab crontab
Так, всі серійники, паролі, інші налаштування, вже намальовані так як треба, як вони були на вашій системі, де ви збирали цей пакунок.
Давайте пройдемось по цих кроках. Вдумливим копіпастом.
====== Крок 2. Встановлення Ubillling ======
Початково, необхідно завантажити максимально свіжий нічний білд скрипта встановлення Ubilling
fetch http://snaps.ubilling.net.ua/ubinstaller_current.tar.gz
tar zxvf ubinstaller_current.tar.gz
cd ubinstaller
Та запустити його пакетну версію, якось так:
sh Batchinstaller.sh MIG 143_6L CURRENT em0 em1 mys123456 stg123456 rsd123456 UB45fc024bbb2632be0b3de41ff8a8b15b
===== Коротко про параметри Batchinstaller =====
**Синтаксис:**
Batchinstaller.sh [external_interface] [mysql_pass] [stargazer_pass] [rscriptd_pass] [ubilling_serial]
=== Обов’язкові параметри ===
* **type** - тип встановлення:
* NEW - нове встановлення
* MIG - міграція існуючої системи
* **arch** - цільова [[setupubinstaller|архітектура]]:
* 150_6M
* 143_6L
* 142_6L
* 135_6L
Детальніше про іменування бінарних пакунків, можна дізнатись [[setupubinstaller|тут]]
* **channel** - канал встановлення Ubilling:
* **STABLE** - останній стабільний реліз
* **CURRENT** - поточна нічна збірка
* **internal_interface** - назва внутрішнього мережевого інтерфейсу. Обов'язкова.
=== Необов’язкові параметри ===
* **external_interface** - назва зовнішнього інтерфейсу (використовується для NAS та розгортання фаєрволу).
=== Параметри, обов’язкові для типу MIG ===
* **mysql_pass** - пароль root для MySQL.
* **stargazer_pass** - пароль адміністратора Stargazer.
* **rscriptd_pass** - пароль шифрування rscriptd.
* **ubilling_serial** - серійний номер Ubilling.
Тобто уважно дивимось на це все. В першу чергу, на архітектуру системи на якій ви намагаєтесь розгорнути цей пакунок телепорту, а також на те, як у вас вже попередньо налаштовані інтерфейси на цій системі. У випадку, якщо ваш новий сервер максимально повторює конфігурацію попереднього - сильно багато можна не думати і копіпастити запуск Batchinstaller як він є.
Отож після запуску Batchinstaller почнеться встановлення чистого Ubilling з потрібними вам параметрами, взятими напряму з вашої системи, котру ви телепортуєте
{{:unicornteleport5.png|}}
яке повинно би закінчитись якось так
{{:unicornteleport6.png|}}
**Важливо: не перезавантажуємось!**
====== Крок 2. Розгортання резервної копії бази ======
Тут все просто, беремо та копіпастимо.
cd /usr/local/unicornteleport
mysql --host localhost -u root -pmys123456 stg < unicornteleport.sql
Все. Тепер ми маємо свіжий Ubilling, з нашою базою, знятою на момент створення пакунку телепорту.
Що нам може знадобитись ще? Ну наприклад, ми хотіли б для початку, розгорнути весь наш вміст **apache24/data**, оскільки там живуть наш біллінг, його адміністратори, різні дані, за звичай всякі вже налаштовані openpayz, та інші вже налаштовані сервіси.
tar zxvf wwwdata.tgz -C /usr/local/www/apache24
також нам може захотітись відновити наш попередній crontab, оскільки в нас там теж можуть бути (і скоріш за все є) різні кастомні штуки:
/usr/bin/crontab crontab
перевіряємо
crontab -l
Все, в цілому це вже _ваш_ робочий білінг, з вашою актуальною базою. Але підемо трішки далі.
Бекапимось
cp -R /etc/stargazer /etc/orig_stargazer
cp -R /etc/firewall.conf /etc/orig_firewall.conf
cp -R /etc/rc.conf /etc/orig_rc.conf
cp -R /usr/local/etc/apache24 /usr/local/etc/orig_apache24
Також важлива конфігурація Stargazer, там живуть власне налаштування тарифікації, скрипти ініціалізації користувачів, тощо. Якщо ви її змінювали, після встановлення вашого білінгу, теж було б добре розгорнути:
tar zxvf stgconfig.tgz -C /etc
Також опційно, вам може захотітись відновити ваші старі rc.conf, налаштування фаєрволу з firewall.conf та налаштування Apache (може у вас там якісь віртуалхости були намальовані, тощо). Зробити це можна аналогічним чином (в ідеалі, попередньо забекапивши оригінальні та робочі конфігурації):
Розгортаємо що нам треба
tar zxvf apache_conf.tgz -C /usr/local/etc
tar zxvf rcconf.tgz -C /etc
tar zxvf firewallconf.tgz -C /etc
При розгортанні конфігурації Apache, варто пам'ятати, що версії PHP бувають різні. Тому, наприклад, при переїзді з старої установки, що була на PHP 7.4 на новий хост з PHP 8.4 ваш Apache може сказати щось типу
apachectl restart
Performing sanity check on apache24 configuration:
httpd: Syntax error on line 175 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/libphp7.so into server: Cannot open "/usr/local/libexec/apache24/libphp7.so"
Що з одного боку, лікується просто заміною в /usr/local/etc/apache24/httpd.conf
LoadModule php7_module libexec/apache24/libphp7.so
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
на
LoadModule php_module libexec/apache24/libphp.so
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
а з іншого боку, наглядно демонструє, що при копіпасті все ще треба трішки користуватись мозком. Резервувати оригінальні конфіги, і можливо проявити якось креатив, при розгортанні старих конфігурацій. Наприклад, якщо від Apache вам були потрібні, тільки віртуальні хости (ну там кабінети у вас на тому висять, ще якісь сервіси) то можна зробити просто якось так:
tar zxvf apache_conf.tgz -C /usr/local/etc apache24/extra/httpd-vhosts.conf
Ось власне і все.