Установка Bitrix24 на Proxmox VE на сервере Hetzner с нуля

Andy Wits Blog

Установка Bitrix24 на Proxmox VE на сервере Hetzner с нуля

Здесь описаны шаги, позволяющие настроить менеджер виртуальных машин Proxmox VE и установить внутри VM и CT Битрикс24, коробочную версию.

Установка и настройка Proxmox VE на Debian 12

  1. Установим Debian 12 (Bookworm) base (из rescue mode) по мануалу от community Hetzner [1]
  2. Установим менеджер виртуальных машин по этому же мануалу [1].
  3. Также добавим некоторые пакеты, согласно мануалу [2]:
apt install open-iscsi chrony
  1. Также удалим ядро дебиан, как советовалось в мануале [2]
apt remove linux-image-amd64 'linux-image-6.1*'
  1. Также удалим os-prober (тоже совет из мануала [2])
apt remove os-prober
  1. Настроим ssh. Сделаем для root подключение через pubkey и без пароля (опция "PermitRootLogin prohibit-password" в конфиге /etc/ssh/sshd_config). Поменяем порт ssh на нестандартный. Отключим ненужные функции:
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
  1. Установим и настроим fail2ban для sshd, а также для Proxmox ( источник )
  2. Настроим SSL для веб-интерфейса Proxmox ( источник )
  3. Поставим 2х-факторную аутентификацию
  4. Купим 1 дополнительный ip адрес для будущего домена bitrix.example.com + сделаем запрос на отдельный MAC-адрес для целей виртуализации (Hetzner имеет такую опцию, будем использовать!)
  5. Сделаем настройку сети гипервизора Proxmox VE (раздел Bridged Setup мануала [1] , а также [2]) вот часть /etc/network/interfaces:
auto enp4s0
iface enp4s0 inet manual

### comment & added for Proxmox VE

#iface enp4s0 inet static
#       address A.B.C.D/26
#       gateway A.B.C.E
#       up route add -net A.B.C.F netmask 255.255.255.192 gw A.B.C.E dev enp4s0
# route A.B.C.F/26 via A.B.C.E

auto vmbr0
iface vmbr0 inet static
        address A.B.C.D/26
        gateway A.B.C.E
        bridge-ports enp4s0
        bridge-stp off
        bridge-fd 0
        up route add -net A.B.C.F netmask 255.255.255.192 gw A.B.C.E dev vmbr0
        
### end Proxmox VE settings


Настройка VM Bitrix24 на KVM (Proxmox VE)

  1. Скачиваем с оффициального сайта битрикс образ VMBitrix 9.0.0 для VMWare ( первый архив ).
wget https://repo.bitrix.info/vm/VMBitrix9.0-0-CentOSStream9-VMWare.zip
  1. Создаем VM через интерфейс Proxmox, настраиваем его, в том числе сеть в режиме Bridge (для этого нужно указать мост, ip, mac-адресс), получаем id VM (у меня получилось 100)
  2. Распаковываем его и импортируем образ диска в формат qcow2 (хотя можно подключить и использовать исходный vmdk) и затем этот диск делаем в VM основным:
qm importdisk 100 VMBitrix9.0-0-CentOSStream9-VMWare-disk1.vmdk local -format qcow2
  1. Получаем чистую виртуальную машину с настроенным Битрикс24. Используем документацию для настройки Битрикс.
  2. Если нужно восстановить из Бэкапа, заходим в папку по умолчанию для веб и скачиваем скрипт восстановления:
cd /home/bitrix/www/
wget https://www.1c-bitrix.ru/download/files/scripts/restore.php
chown bitrix: restore.php
  1. Если нужно в VM поменять размер диска (т.к. VM битрикс идёт с диском 50Gb) и переместить swap раздел в конец диска, тогда нужно проделать следующее:

  2. отключить VM и через интерфейс Proxmox изменить размер диска

  3. затем включить и через консоль проделать в самой VM:

swapoff -a # отключить своп
parted /dev/sda # тут делаем манипуляции с диском
xfs_growfs / # расширить файловую систему для 
mkswap /etc/sda2 # отформатировать своп-раздел
blkid -s UUID -o value /dev/sda2 # узнать новый UUID раздела
mcedit /etc/fstab # тут поменять UUID на новый
swapon -a # включить своп

Но это ещё не всё: после перезагрузки возникла проблема, что по-умолчанию в VM битрикс прописан параметр в GRUB "resume=UUID=...." Он вызывает ошибку. Это можно увидеть командой:

grubby --info=ALL

И отредактировать командой (нужно поставить свои UUID):

grubby --remove-args="resume=UUID=d7b08c62-c5bb-459a-99f4-60863142302e" --args="resume=UUID=43d3feaf-d903-4f36-a094-359d7274645c" --update-kernel /boot/vmlinuz-5.14.0-503.el9.x86_64

Ещё можно заморочиться и настроить автообновления ядра CentOS, командами, вроде:

dnf install kernel
dnf remove --oldinstallonly --setopt installonly_limit=2 kernel

! тут надо быть внимательным

Посмотреть записи GRUB

grubby --info=ALL

И удалить лишние, если запись 0, тогда:

grubby --remove-kernel=0

Снова посмотреть:

grubby --info=ALL

Пока не останутся нужные.

p.s. Ещё можно сделать настройки VM по "best practice".


Настройка VM Bitrix24 в контейнере LXC (Proxmox VE)

  1. Найти в гугл / на сайте CentOS контейнер для LXC не получится (у меня не получилось во всяком случае). Только Docker контейнеры находятся, которые не подходят... Например, тут я не нашёл LXC контейнеры.
  2. Консольная утилита lxc и ее алиасы для поиска и установки контейнеров тоже не работают. Попытка их установить вызовет удаление Proxmox , т.к. пакеты конфликтуют
  3. К счастью, есть утилита pveam ( спасибо https://wiki.chucknemeth.com/proxmox/lxc/lxc-template ). С её помощью можно найти и скачать нужные templates для lxc
pveam update # обновить список
pveam available # просмотреть список
pveam available | grep -i centos # поискать, что есть по слову centos
  1. скачать нужный template в нужный storage можно командой вида: pveam download [storage name]. Например:
pveam download local centos-9-stream-default_20221109_amd64.tar.xz
  1. Разворачиваем контейнер из этого образа.
  2. Для манипуляций с контейнерами можно использовать консольную команду pct. Например:
pct unmount 101 # отмонтировать диск для контейнера 101  
  1. Для удобства ставим ssh сервер (но это необязательно, можно админить через веб-консоль PVE)
dnf install openssh-server
  1. Если поставили ssh сервер, для безопасности лучше поменять порт ssh на нестандартный (файл /etc/ssh/sshd_config). Затем можно перезапустить и проверить статус службы и порт, какой поставили, к примеру 22333:
systemctl status sshd
  1. Также некоторые другие пакеты:
dnf install nano
dnf install mc
dnf install wget
dnf install screen
  1. Далее следуем инструкции и ставим битрикс-окружение на установленный образ CentOS 9 Stream
  2. Почему-то первый запуск завершается ошибкой: "Error installing package: bitrix-env". В логах показывает сообщение:
Error:
 Problem: cannot install the best candidate for the job
  - nothing provides perl-YAML-LibYAML needed by bitrix-env-9.0-2.el9.x86_64 from bitrix-9
  - nothing provides perl-YAML-Tiny needed by bitrix-env-9.0-2.el9.x86_64 from bitrix-9
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
2024-09-14T17:02:05: 774 : Error installing package: bitrix-env
2024-09-14T17:02:05: 774 : Log file path:  /tmp/bitrix-env-prkXK.log

Лечится ничем. Просто перезапускаем скрипт:

./bitrix-env-9.sh

и установка продолжается... 12. Дальше можно зайти в папку нового сайта битрикс и скачать скрипт для восстановления из бэкапа:

su bitrix -l
cd /home/bitrix/www/
wget https://www.1c-bitrix.ru/download/files/scripts/restore.php
  1. Теперь можно будет подключиться к старому серверу и загрузить бэкап в корень нового сайта:
mc . sh://[email protected]/home/bitrix/www/bitrix/backup

нажать Shift + и выделить файлы бэкапов по маске (часть имени файла) скопировать по F5 14. Также полезно будет проверить и установить обновления Bitrix24 15. Еще более полезно провести проверки 16. Также важно проверить Timezone на сервере и поставить свою (это лучше было изначально сделать)

timedatectl status
timedatectl list-timezones
timedatectl set-timezone Asia/Tokyo
  1. Предпочтительный способ поставить верную Timezone - как описано в этом руководстве.
  2. Также могут быть проблемы с отправкой email уведомлений. Для этого возможно проще всего настроить /home/bitrix/.msmtprc конфиг. Примерно так:
# smtp account configuration for ******
account *******
logfile /home/bitrix/msmtp_*******.log
host smtp.office365.com
port 587
from noreply@*******
keepbcc on
auth on
user noreply@********
password *******
tls on
tls_certcheck off
timeout 15

Полезные источники:

Published on Oct 14 2024 at 9:30 am
Time to read 3 minute(s)
Categories
  • System Administration

Contact me on