4. Создание виртуальных машин для серверов управления Брест и контроллеров домена ALD Pro

4. Создание виртуальных машин для серверов управления Брест и контроллеров домена ALD Pro#

На bootstrap сервере в домашней директории пользователя astra находятся файлы env_variables``и ``rolloutvm.sh.

Файл env_variables является файлом переменных для скрипта rolloutvm.sh.

/home/astra/env_variables
/home/astra/rolloutvm.sh

4.1. Параметризация и запуск скрипта создания виртуальных машин#

Для развертывания виртуальных машин запускается bash-скрипт rolloutvm.sh, перед запуском которого необходимо поменять значения переменных в файле env_variables.

# основная сеть, все виртуальные машины и физические узлы должны иметь к ней доступ
mgmtnetwork='192.168.22.0/24'

# сеть для трафика RuBackup
bckpnetwork='10.22.22.0/24'

# сеть для трафика iSCSI
stornetwork='172.22.0.0/24'
# последний откет IP-адреса для сетевого маршрута по умолчаниюgtw='14'
# Имя пользователя с возможностью беспарольного sudo на KVM хостах
defuser='astra'
defpass='astra'

# IP-адреса узлов виртуализации (физических машин)
kvmhost1='192.168.22.11'
kvmhost2='192.168.22.12'
kvmhost3='192.168.22.13'

# системные имена узлов виртуализации
kvmname1="aichost1"
kvmname2="aichost2"
kvmname3="aichost3"

# доменное имя (записывается в файлы /etc/hosts физических серверов)
domain="aicstand.ru"

# последние октеты IP-адресов машин ALD Pro
aldphost1='230'
aldphost2='231'

# последние октеты IP-адресов серверов управления
frnthost1='233'
frnthost2='234'
frnthost3='235'

Примечание

Если требуется изменить доменное имя, необходимо поменять его в файле /etc/hosts на каждом физическом сервере.

Предупреждение

У скрипта есть ограничения:

  • реализованы только классовые подсети с маской /24;

  • в основной сети нет DHCP-сервера;

  • скрипт требует заранее установленных пакетов на узлах виртуализации, скрипт не ставит самостоятельно эти пакеты:

    • astra-kvm;

    • bridge-utils;

    • virtinst.

Как только нужные значения в файле env_variables выставлены, запустить скрипт для развертывания виртуальных машин:

./rolloutvm.sh

4.2. Описание последовательности работы rolloutvm.sh скрипта#

  1. Для каждого KVM хоста последовательно подготавливается инфраструктура:

  • если не сгенерирована пара ключей SSH, создаются ключи;

  • публичный ключ и образы копируются на KVM хост;

  • создаются условия на KVM для успешного изменения сети:

    • удаляются пакеты: avahi-daemon network-manager wpasupplicant;

    • деактивируются службы: firewalld dnsmasq ModemManager one-context one-context-online one-context-local (последние 3 предназначены для вложенной виртуализации);

    • проверяется, что пакеты astra-kvm и bridge-utils предустановлены;

  1. Изменяется сеть в /etc/network/interfaces (далее - ENI):

  • ищется интерфейс типа bridge с назначенным IP-адресом из сети network (переменная в файле env_variables), далее используется как bridge для виртуальной сети management;

  • если обнаружен интерфейс НЕ типа bridge с IP из сети network, то сеть переделывается:

    • создается bridge интерфейс brald;

    • адрес и параметры найденной сети переходят к интерфейсу brald;

    • обнаруженный интерфейс входит в состав bridge brald;

    • машина перезагружается (перезапуск службы networking не всегда отрабатывает корректно).

  1. Создается виртуальная сеть management для виртуальной инфраструктуры.

  2. По аналогии с сетью management создается виртуальная сеть для трафика iSCSI и для трафика RuBackup.

  3. Поднимается внутренний DHCP-сервер — dnsmasq.

  4. Создается виртуальная машина ald:

  • отдаваемый DHCP IP-адрес перехватывается, конфигурация переопределяется в статическую согласно env_variables.

  1. Создается виртуальная машина front:

  • отдаваемый DHCP IP-адрес перехватывается, конфигурация переопределяется в статическую согласно env_variables.

  1. Временные файлы на KVM хосте удаляются, DHCP-сервер деактивируется.

  2. Изменяется строка в файле /etc/resolv.conf, строка nameserver 8.8.8.8 заменяется на nameserver 77.88.8.8.

  3. Будет добавлен сетевой маршрут по умолчанию с указанным в переменных адресом, аналог команды ip route add default.

Остальные KVM машины разворачиваются аналогичным образом.

Результатом выполнения являются работающие на каждом KVM узле виртуальные машины, имеющие IP-адреса, заранее заданные в файле env_variables, 2 виртуальные машины на первом и втором физических серверах и 1 виртуальная машина на третьем физическом сервере. Именно эти виртуальные машины и используются как ресурсы для развертывания.

В названии виртуальных машин, расположенных на первом сервере, стоит цифра «1», на втором — цифра «2»: например, aldphost1, frnthost2.

Виртуальные машины frnthost1, frnthost2, frnthost3, получают системные имена: node1-test, node2-test, node3-test.

Виртуальные машины aldphost1, aldphost2 получают системные имена dc1-test, dc2-test.

Эта информация используется для внесения записей в /etc/hosts.