208  /  282

Как сделать образ BitrixVM для клонирования

Просмотров: 27745
Дата последнего изменения: 26.03.2021
Александр Суворов
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5

В этой главе будет описано, как сделать образ виртуальной машины BitrixVM для клонирования.

Это пригодится специалистам, которые делают минимальную настройку виртуальной машины BitrixVM и потом клонируют ее, а полученный клон используют дальше для развертывания.

Рассмотрим установку часто используемых сервисов виртмашины:

  • push-server
  • memcached сервер

Существует 2 способа перенести виртуальную машину BitrixVM – ручное создание клона существующей машины с необходимыми сервисами и автоматическое развертывание готового образа (рекомендуемый).

Клонирование образа

План создания клона виртуальной машины BitrixVM выглядит примерно так:

  1. Для установки ПО нужно включить пул управления для машины
  2. Поставить необходимое ПО через меню или с помощью скриптов
  3. Удалить настройки пула
  4. Дополнительные очистки системы и ssh-ключей
  5. Сделать образ машины

1. Включение пула управления на машине

Данный шаг необходим, чтобы получить доступ к настройкам сервера, установки 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 будут нулевые значения, значит все хорошо и можно продолжать.


2.1. Установка push-server

Установить push-server можно через меню или с помощью команды:

/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

2.2. Установка memcached сервера

Устанавливаем memcached сервер:

/opt/webdir/bin/bx-mc -a create -s SERVER_NAME

Тут про адрес при копировании можно не задумываться, т.к. сервис слушает все и доступ ограничивается настройками iptables/firewalld.


3. Удаление настроек пула

Если машина в пуле одна, то это стоит сделать хотя бы для того, чтобы на новой машине создать заново ssh-ключи и другие настройки безопасности.

Если в пуле несколько машин, то не рекомендуется оставлять настройки пула при копирование, т.к. в пуле существуют механизмы распознавания смены адреса и новая машина может взять на себя обязанности мастера.

Для этого нужно удалить файлы и каталоги конфигурации для ansible:

rm -rf /etc/ansible/{host_vars,group_vars,hosts,ansible-roles}

Или выполнить команду ansible:

/opt/webdir/bin/wrapper_ansible_conf -a delete_pool

4. Дополнительные очистки

Удаляем правила 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

Вы получаете работоспособную установку без необходимости решать проблемы смены адреса при копировании шаблона.

Каждый запуск – это будет фоновое задание, статус которого можно отслеживать, как показано выше.



4
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии