Битрикс24 в коробке на Proxmox: установка и четыре грабли
Коробочный Битрикс24 разворачивается из готового образа виртуальной машины — BitrixVM. Внутри уже собран весь стек: nginx, Apache, PHP, MySQL, push-сервер, почта, панель управления. Ставить руками ничего не надо.
Теоретически установка сводится к «скачай образ и запусти». На практике образ не стартует с настройками Proxmox по умолчанию, а первый же пункт меню настройки падает с ошибкой. Ни то, ни другое в документации не описано.
Разберу рабочий порядок действий и все места, где я спотыкался.
Зачем коробка на своём гипервизоре
Облачный Битрикс24 проще, но коробка даёт то, чего в облаке нет:
- Данные в своём контуре. Для части заказчиков это единственный допустимый вариант.
- Доступ к файлам и базе. Можно дорабатывать, писать свои модули, лезть в SQL напрямую.
- Интеграции без ограничений на частоту обращений к API.
- Снапшоты гипервизора. Перед обновлением портала — снимок; что-то пошло не так — откат за минуту. С облаком так не получится.
Последнее на практике важнее всего остального.
Что потребуется
| Минимум | Рабочий вариант | |
|---|---|---|
| Ядра | 2 | 4 и больше |
| Память | 4 ГБ | 8 ГБ |
| Диск | 55 ГБ | 100 ГБ и больше |
Образ раздаётся с repo.bitrix24.tech, в вариантах под разные дистрибутивы —
CentOS Stream и AlmaLinux. Берите файл, в имени которого есть ProxmoX
и расширение qcow2: он уже подготовлен под наш гипервизор.
Весит около четырёх гигабайт, разворачивается в диск примерно на 54 ГБ. Если канал скромный, качать лучше заранее — на медленном интернете это час и больше.
Скачиваем прямо на узел Proxmox, по SSH:
cd /var/lib/vz/import
wget https://repo.bitrix24.tech/.../VMBitrix9.0-9-AlmaLinux9-ProxmoX-disk1.qcow2
Точный адрес возьмите на сайте — версии меняются.
Грабля первая: образ загружается только через UEFI
Вот где застревают все.
Диск в образе размечен как GPT с системным разделом EFI и без загрузочного
раздела BIOS. Proxmox по умолчанию создаёт машины с SeaBIOS — и такая
машина просто виснет на надписи Booting from hard disk. Без ошибок,
без паники ядра, без единой подсказки. Просто висит.
Лечится указанием OVMF и отдельного диска под переменные EFI:
qm create 300 --name bitrix24 --memory 8192 --cores 4 --cpu host \
--machine q35 --bios ovmf \
--scsihw virtio-scsi-pci \
--net0 virtio,bridge=vmbr0 \
--agent 1 --onboot 1
qm set 300 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0
pre-enrolled-keys=0 отключает Secure Boot — с включённым образ не поедет.
Порядок, который работает
Последовательность важна: диск EFI создаётся до импорта основного диска.
# 1. машина с OVMF — команда выше
# 2. диск EFI — команда выше
# 3. импорт образа (несколько минут)
qm disk import 300 /var/lib/vz/import/VMBitrix9.0-9-AlmaLinux9-ProxmoX-disk1.qcow2 local-lvm
# 4. подключаем импортированный диск
qm set 300 --scsi0 local-lvm:vm-300-disk-1,discard=on,ssd=1
# 5. загрузка с него
qm set 300 --boot order=scsi0
# 6. поехали
qm start 300
Имя диска из третьей команды подставьте то, которое она напечатает.
discard=on,ssd=1 стоит указывать, если хранилище на SSD: освобождённые
блоки будут возвращаться, а не копиться.
Грабля вторая: не включайте serial-консоль
Соблазн добавить --vga serial0 велик — с текстовой консолью удобнее
работать по SSH.
Не надо. В образе grub не настроен на последовательную консоль, и вместо
загрузки вы получите зависшее noVNC-окно с надписью про запуск терминала
на интерфейсе serial0. Выглядит опять же как «машина не работает».
Оставляйте обычную графическую консоль: --vga std. Это значение
по умолчанию, так что достаточно просто ничего не трогать.
Первый вход
Машина загрузится и покажет меню BitrixVM. Пароль root генерируется
при первом запуске и выводится прямо на экран — его и вводите. Никакого
пароля по умолчанию больше нет: старые инструкции, где предлагается войти
под bitrix, устарели.
Отсюда практическое следствие: первый вход делается через консоль гипервизора, а не по SSH. Прочитать сгенерированный пароль больше негде.
Сразу после входа система потребует сменить пароль root и отдельно задать
пароль для учётной записи bitrix — той, под которой работает сам портал.
Оба сохраните в хранилище паролей сразу, восстановить их потом
неоткуда.
Адрес по умолчанию берётся по DHCP. Зарезервируйте его на роутере — иначе после планового отключения Битрикс окажется по другому адресу, а он прописывает имя узла в свою конфигурацию.
Ещё одна особенность: выполнение команд через гостевой агент в образе отключено. Агент установлен и статус машины показывает, но запустить команду внутри не даст. Заходить только по SSH.
Грабля третья: «Error creating pool»
Самая обидная, потому что возникает на первом же осмысленном шаге.
Выбираете в меню пункт создания пула, вводите имя сервера — и получаете:
bxNetworkNode::create_network_options: ip=127.0.0.1 not belong to localhost
Меняете имя — то же самое. Дело не в имени.
Причина: в свежем образе имя узла — localhost, а в /etc/hosts только
две петлевые строки, без записи с реальным адресом. BitrixVM определяет
адрес узла, резолвя собственное имя, получает 127.0.0.1 и отказывается
строить пул на петлевом интерфейсе.
Лечение:
hostnamectl set-hostname bx-server
# и добавить в /etc/hosts строку с реальным адресом:
echo "192.168.10.50 bx-server" >> /etc/hosts
Проверять результат командой getent hosts бесполезно: сразу после смены
имени системный модуль может вернуть link-local адрес, и вы решите,
что не помогло. Проверяйте штатной утилитой BitrixVM:
/opt/webdir/bin/bx-node -a create_settings -i eth0 -H bx-server
Успех выглядит так — строка вида info:pool_manager:eth0:<адрес>:<имя>:SIMPLE:<имя>
и нулевой код возврата. После этого пункт меню проходит нормально.
Дальше — обычная установка
Пул создан, остальное делается из меню: установка портала, настройка push-сервера, почты, сертификатов. Тут всё предсказуемо и описано в документации Битрикса.
Сразу после установки имеет смысл сделать снапшот — до того, как зальёте данные. Если что-то пойдёт не так при восстановлении бэкапа портала, будет куда вернуться.
Грабля четвёртая: свои настройки nginx
Понадобится, когда станете публиковать портал наружу или добавлять дополнительные домены.
BitrixVM управляет конфигурацией nginx сам и перезаписывает файлы
в conf.d при каждом изменении настроек через меню. Всё, что вы туда
положили, однажды исчезнет — обычно в самый интересный момент.
Свои виртуальные хосты кладите в каталог, предназначенный для внешних
конфигураций: bx/site_ext_enabled. Оттуда BitrixVM их не трогает.
Кратко: что запомнить
- Только UEFI —
--bios ovmfплюс диск EFI сpre-enrolled-keys=0. С SeaBIOS зависает без единого сообщения. - Диск EFI создаётся до импорта основного.
- Не включать serial-консоль — grub в образе к ней не готов.
- Имя узла и
/etc/hostsправятся до создания пула, иначе «Error creating pool». - Гостевой агент команды не выполняет — только SSH.
- Свои vhost — в
site_ext_enabled, не вconf.d. - Зарезервировать адрес на DHCP-сервере.
- Снапшот сразу после установки.
Если гипервизора ещё нет — начните с установки Proxmox. А чтобы портал не остался без присмотра, полезно сразу завести его в мониторинг: Битрикс чувствителен к месту на диске, и заканчивается оно всегда внезапно.