Дата последнего изменения: 26.03.2021
В этой главе будет описано, как сделать образ виртуальной машины BitrixVM для клонирования.
Это пригодится специалистам, которые делают минимальную настройку виртуальной машины BitrixVM и потом клонируют ее, а полученный клон используют дальше для развертывания.
Рассмотрим установку часто используемых сервисов виртмашины:
Существует 2 способа перенести виртуальную машину BitrixVM – ручное создание клона существующей машины с необходимыми сервисами и автоматическое развертывание готового образа (рекомендуемый).
План создания клона виртуальной машины BitrixVM выглядит примерно так:
Данный шаг необходим, чтобы получить доступ к настройкам сервера, установки push-server и memcached.
Если на чистом сервере в меню выбрать пункт 1. Create Management pool of server, то он как раз проведет по необходимым настройкам.
Либо можно выполнить следующую команду:
/opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACEгде:
-H SERVER_NAME
– это имя сервера, которое будет использовано в настройках.-I NET_INTERFACE
– это сетевой интерфейс, чей IP-адрес будет использован в настройках пула.
Данная команда вернет ID задания, завершения которого нужно дождаться, чтобы продолжить дальше:
message ... Run configuration pool job task_id=common_7874274840 All operations complete
Дождаться завершения можно, отслеживая состояние лог-файла:
tailf /opt/webdir/temp/common_7874274840/status ... srv1 : ok=75 changed=30 unreachable=0 failed=0
Если в полях unreachable
и failed
будут нулевые значения, значит все хорошо и можно продолжать.
/opt/webdir/bin/bx-sites -a push_configure_nodejs -H SERVER_NAME
Дожидаемся завершения задания.
info:bxDaemon:pushserver_2042054462:7097:1594650283::running:::
По умолчанию сценарий виртуальной машины настроит сервис на использование на рабочем IP-адресе, чтобы в случае подключения других машины в пул они могли использовать его.
Предполагается, что образ будет использован для копирования виртуальной машины, поэтому адрес на новой установке, скорее всего, будет другой и указанные настойки не сработают. Чтобы это обойти, мы меняем адрес сервиса на localhost
, который есть на любом Linux-хосте.
Для этого в файле /etc/sysconfig/push-server-multi меняем параметр на:
WS_HOST=127.0.0.1
И пересоздаем конфиги push-server:
systemctl stop push-server /etc/init.d/push-server-multi reset
Nginx проксирует запросы на push-server на основание имени хоста. Чтобы он правильно определил, куда и как проксировать, меняем запись в /etc/hosts:
127.0.0.1 SERVER_NAME
Устанавливаем memcached сервер:
/opt/webdir/bin/bx-mc -a create -s SERVER_NAME
Тут про адрес при копировании можно не задумываться, т.к. сервис слушает все и доступ ограничивается настройками iptables/firewalld.
Если машина в пуле одна, то это стоит сделать хотя бы для того, чтобы на новой машине создать заново ssh-ключи и другие настройки безопасности.
Если в пуле несколько машин, то не рекомендуется оставлять настройки пула при копирование, т.к. в пуле существуют механизмы распознавания смены адреса и новая машина может взять на себя обязанности мастера.
Для этого нужно удалить файлы и каталоги конфигурации для ansible:
rm -rf /etc/ansible/{host_vars,group_vars,hosts,ansible-roles}
Или выполнить команду ansible:
/opt/webdir/bin/wrapper_ansible_conf -a delete_pool
Удаляем правила Udev для интерфейсов:
/bin/rm -f /etc/udev/rules.d/70*
Очищаем записи MAC-адресов и UUID устройств:
/bin/sed -i ‘/^(HWADDR|UUID)=/d’ /etc/sysconfig/network-scripts/ifcfg-eth0
Удаляем ssh-ключи. При старте новая машина создаст для себя новые ключи:
/bin/rm –f /etc/ssh/*key*
Очищаем логи сценариев:
/bin/rm -fr /opt/webdir/temp/* /bin/rm -fr /opt/webdir/logs/*
При разворачивании клонированного образа на новом месте рекомендуется настроить пул управления, чтобы иметь возможность дальнейшего управления виртуальной машиной.
Если копия (образ) делается для бэкапа и воссоздание из нее будет всегда той же самой машины, т.е. нет смены адреса, нет смены ключей, пул остается там, где был, то можно не выполнять вышеописанные действия.
Можно настраивать чистый образ автоматически. Для этого просто добавьте приведенные выше команды в свой сценарий или bash-скрипт:
# создание пула /opt/webdir/bin/wrapper_ansible_conf -a create -H SERVER_NAME -I NET_INTERFACE # настройка пуш-сервера /opt/webdir/bin/bx-sites -a push_configure_nodejs -H SERVER_NAME # настройка memcached сервиса /opt/webdir/bin/bx-mc -a create -s SERVER_NAME
Вы получаете работоспособную установку без необходимости решать проблемы смены адреса при копировании шаблона.
Каждый запуск – это будет фоновое задание, статус которого можно отслеживать, как показано выше.