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 скрипта#
Для каждого 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предустановлены;
Изменяется сеть в
/etc/network/interfaces(далее - ENI):
ищется интерфейс типа bridge с назначенным IP-адресом из сети network (переменная в файле
env_variables), далее используется как bridge для виртуальной сетиmanagement;если обнаружен интерфейс НЕ типа bridge с IP из сети network, то сеть переделывается:
создается bridge интерфейс
brald;адрес и параметры найденной сети переходят к интерфейсу
brald;обнаруженный интерфейс входит в состав bridge
brald;машина перезагружается (перезапуск службы
networkingне всегда отрабатывает корректно).
Создается виртуальная сеть
managementдля виртуальной инфраструктуры.По аналогии с сетью management создается виртуальная сеть для трафика iSCSI и для трафика RuBackup.
Поднимается внутренний DHCP-сервер —
dnsmasq.Создается виртуальная машина
ald:
отдаваемый DHCP IP-адрес перехватывается, конфигурация переопределяется в статическую согласно
env_variables.
Создается виртуальная машина
front:
отдаваемый DHCP IP-адрес перехватывается, конфигурация переопределяется в статическую согласно
env_variables.
Временные файлы на KVM хосте удаляются, DHCP-сервер деактивируется.
Изменяется строка в файле
/etc/resolv.conf, строкаnameserver 8.8.8.8заменяется наnameserver 77.88.8.8.Будет добавлен сетевой маршрут по умолчанию с указанным в переменных адресом, аналог команды
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.