Пошаговый план обновления BigBlueButton в контейнере (с бэкапом и откатом)
Дата: 2026-02-10
Контейнер: BBB-CONT22-1 (10.218.14.37)
Домен: school.cdto.life
Текущая версия: 3.0.19 (3240)
Целевая версия: 3.0.21 (или последняя 3.0.x)
Обзор
Обновление выполняется внутри LXD-контейнера BBB-CONT22-1. Официальный способ обновления BigBlueButton 3.0 — повторный запуск скрипта bbb-install.sh с теми же параметрами; он обновит пакеты до последней 3.0.x.
Перед обновлением обязательны: полное сохранение состояния (конфиги + LXD-снимок контейнера), при необходимости — бэкап записей и БД. Откат — восстановление контейнера из снимка.
Фаза 0: Подготовка (на хосте)
| Шаг | Действие | Команда / примечание |
|---|---|---|
| 0.1 | Выбрать окно обслуживания | Минимум 30–60 минут без активных конференций |
| 0.2 | Убедиться, что контейнер запущен | lxc list BBB-CONT22-1 — статус RUNNING |
| 0.3 | Проверить текущую версию | lxc exec BBB-CONT22-1 -- bbb-conf --version |
| 0.4 | Сохранить секрет API (на случай отката конфигов) | lxc exec BBB-CONT22-1 -- bbb-conf --secret → записать URL и Secret |
Фаза 1: Бэкап (обязательно)
1.1 Полное сохранение состояния (конфиги + LXD-снимки)
Выполняется на хосте из репозитория DENKART:
cd /home/cdto/DENKART/scripts
./save-state-before-migration.sh pre-bbb-upgrade
Создаётся каталог config/snapshots/state-pre-bbb-upgrade-<timestamp>/ с:
- правилами iptables;
- копиями конфигов (iptables, nginx, haproxy);
- конфигами из контейнеров (LXD, haproxy BBB, nginx);
- LXD-снимками контейнеров BBB-CONT22-1, docs-denkart, nginx-reverse-proxy с именем pre-proxy-YYYYMMDD-HHMM.
Имя снимка BBB сохраните — оно понадобится для отката (см. вывод скрипта или MANIFEST.txt в каталоге снимка).
1.2 (Рекомендуется) Дополнительный снимок только BBB
Чтобы иметь отдельную точку отката именно контейнера BBB:
SNAP_NAME="pre-bbb-upgrade-$(date +%Y%m%d-%H%M%S)"
lxc snapshot BBB-CONT22-1 "$SNAP_NAME"
echo "Снимок BBB для отката: $SNAP_NAME"
1.3 (По желанию) Полный бэкап BBB (записи, PostgreSQL)
Если важны записи и данные Greenlight:
sudo /home/cdto/DENKART/scripts/backup-bbb.sh
Бэкап сохраняется в /D/backups/bbb/<timestamp>/ (snapshot контейнера, дамп PostgreSQL, конфиги).
1.4 Закоммитить и выгрузить точку отката
cd /home/cdto/DENKART
git add -A
git status
git commit -m "Состояние перед обновлением BBB (pre-bbb-upgrade). Снимок: state-pre-bbb-upgrade-<timestamp>"
git push origin develop
При необходимости создать тег:
git tag -a v1.x-pre-bbb-upgrade -m "До обновления BBB 3.0.19 -> 3.0.21"
git push origin v1.x-pre-bbb-upgrade
Фаза 2: Обновление BBB внутри контейнера
Все команды ниже выполняются внутри контейнера BBB-CONT22-1 (через lxc exec BBB-CONT22-1 -- ...) или в интерактивной оболочке: lxc exec BBB-CONT22-1 -- bash.
2.1 Подготовка в контейнере
lxc exec BBB-CONT22-1 -- bash -c 'apt update && apt list --upgradable | grep -E "bbb-|bigbluebutton" || true'
Проверить, что репозиторий BigBlueButton доступен.
2.2 Обновление через bbb-install (рекомендуемый способ)
Официальная документация: обновление 3.0 выполняется повторным запуском bbb-install.sh. Скрипт нужно запустить внутри контейнера с теми же параметрами, что и при установке (хостнейм, email для Let's Encrypt и т.д.).
Вариант A — последняя 3.0.x:
lxc exec BBB-CONT22-1 -- bash -c 'wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s school.cdto.life -e ВАШ_EMAIL'
Замените ВАШ_EMAIL на email, использованный при первичной установке (для Let's Encrypt).
Вариант B — конкретная версия 3.0.21:
lxc exec BBB-CONT22-1 -- bash -c 'wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300-3.0.21 -s school.cdto.life -e ВАШ_EMAIL'
Если в контейнере уже настроены SSL и firewall (UFW), можно при необходимости опустить -w (не трогать UFW). Если при первой установке использовались другие флаги (например -g для Greenlight), добавьте их.
2.3 Конфликт конфигов при обновлении
Если при установке пакетов появится запрос о сохранении изменённого конфига (например /etc/default/bbb-graphql-server):
- Выбрать «Keep current» или оставить текущий файл, если вы его правили.
- Если позже появятся ошибки GraphQL, сравнить с дистрибутивным:
ls -l /etc/default/bbb-graphql-server*
При необходимости:
sudo mv /etc/default/bbb-graphql-server.dpkg-dist /etc/default/bbb-graphql-server
и перезапуск:
sudo bbb-conf --restart
2.4 Перезапуск и проверка
lxc exec BBB-CONT22-1 -- bbb-conf --restart
lxc exec BBB-CONT22-1 -- bbb-conf --check
lxc exec BBB-CONT22-1 -- bbb-conf --version
Убедиться, что в выводе bbb-conf --check нет критичных ошибок (блок «Potential problems»). Проверить статус сервисов:
lxc exec BBB-CONT22-1 -- bbb-conf --status
Фаза 3: Проверка после обновления
| Шаг | Действие | Команда / способ |
|---|---|---|
| 3.1 | Версия | lxc exec BBB-CONT22-1 -- bbb-conf --version — ожидается 3.0.21 (или выбранная 3.0.x) |
| 3.2 | API | curl -s https://school.cdto.life/bigbluebutton/api/version (с хоста или извне) |
| 3.3 | Сайт и вход | Открыть https://school.cdto.life в браузере, войти, создать комнату |
| 3.4 | Звук/видео | Краткий тест микрофона и камеры в конференции |
| 3.5 | Записи | При необходимости проверить воспроизведение существующей записи |
При проблемах — см. раздел «Откат» ниже.
Откат (если обновление прошло неудачно)
Вариант 1: Восстановление контейнера из LXD-снимка
Используется снимок из шага 1.1 или 1.2. Имя снимка — из вывода save-state-before-migration.sh или pre-bbb-upgrade-YYYYMMDD-HHMMSS.
# Остановить контейнер
lxc stop BBB-CONT22-1
# Восстановить из снимка (подставьте фактическое имя)
lxc restore BBB-CONT22-1 pre-proxy-YYYYMMDD-HHMM
# или, если делали отдельный снимок BBB:
# lxc restore BBB-CONT22-1 pre-bbb-upgrade-YYYYMMDD-HHMMSS
# Запустить контейнер
lxc start BBB-CONT22-1
# Проверить версию и сервисы
lxc exec BBB-CONT22-1 -- bbb-conf --version
lxc exec BBB-CONT22-1 -- bbb-conf --check
После отката снова проверить https://school.cdto.life и API.
Вариант 2: Восстановление конфигов и iptables (если откатывали только хост)
Если меняли что-то на хосте (iptables, конфиги nginx и т.д.) и нужно вернуть их к состоянию до обновления:
# Восстановление iptables
sudo iptables-restore < /home/cdto/DENKART/config/snapshots/state-pre-bbb-upgrade-<timestamp>/iptables.rules
# Конфиги — скопировать вручную из каталога state-pre-bbb-upgrade-<timestamp> в config/iptables, config/nginx и т.д., затем применить по вашей процедуре.
Вариант 3: Откат кода/документации репозитория
Если создавали тег перед обновлением:
cd /home/cdto/DENKART
git checkout v1.x-pre-bbb-upgrade
Краткая шпаргалка по шагам
- Бэкап:
./scripts/save-state-before-migration.sh pre-bbb-upgrade→ снимок BBB → (по желанию)backup-bbb.sh→ git commit + push. - Обновление: в контейнере запустить
bbb-install.shс-v jammy-300(или-v jammy-300-3.0.21) и теми же-s,-e, что при установке. - Проверка:
bbb-conf --restart,bbb-conf --check,bbb-conf --version, проверка https://school.cdto.life и API. - Откат:
lxc stop BBB-CONT22-1→lxc restore BBB-CONT22-1 <имя_снимка>→lxc start BBB-CONT22-1→ проверить.
Связанные документы
- Сохранение состояния перед изменениями
- Версии BigBlueButton
- Управление версиями BBB
- Официальная установка/обновление BBB — раздел «Upgrading BigBlueButton 3.0»