Битрикс24 в коробке на Proxmox: установка и четыре грабли

· Павел · bitrix24 bitrixvm proxmox install

Коробочный Битрикс24 разворачивается из готового образа виртуальной машины — BitrixVM. Внутри уже собран весь стек: nginx, Apache, PHP, MySQL, push-сервер, почта, панель управления. Ставить руками ничего не надо.

Теоретически установка сводится к «скачай образ и запусти». На практике образ не стартует с настройками Proxmox по умолчанию, а первый же пункт меню настройки падает с ошибкой. Ни то, ни другое в документации не описано.

Разберу рабочий порядок действий и все места, где я спотыкался.

Зачем коробка на своём гипервизоре

Облачный Битрикс24 проще, но коробка даёт то, чего в облаке нет:

Последнее на практике важнее всего остального.

Что потребуется

Минимум Рабочий вариант
Ядра 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 их не трогает.

Кратко: что запомнить

  1. Только UEFI--bios ovmf плюс диск EFI с pre-enrolled-keys=0. С SeaBIOS зависает без единого сообщения.
  2. Диск EFI создаётся до импорта основного.
  3. Не включать serial-консоль — grub в образе к ней не готов.
  4. Имя узла и /etc/hosts правятся до создания пула, иначе «Error creating pool».
  5. Гостевой агент команды не выполняет — только SSH.
  6. Свои vhost — в site_ext_enabled, не в conf.d.
  7. Зарезервировать адрес на DHCP-сервере.
  8. Снапшот сразу после установки.

Если гипервизора ещё нет — начните с установки Proxmox. А чтобы портал не остался без присмотра, полезно сразу завести его в мониторинг: Битрикс чувствителен к месту на диске, и заканчивается оно всегда внезапно.