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
.