Таъмини металлӣ ё худкор омода кардани серверҳо аз сифр

Салом, ман Денис ва яке аз самтҳои фаъолияти ман таҳияи қарорҳои инфрасохторӣ дар X5 мебошад. Имрӯз ман мехоҳам бо шумо нақл кунам, ки чӣ гуна шумо метавонед системаи автоматии омодасозии серверро дар асоси абзорҳои дастраси оммавӣ ҷойгир кунед. Ба андешаи ман, ин як ҳалли ҷолиб, содда ва чандир аст.

Таъмини металлӣ ё худкор омода кардани серверҳо аз сифр

Бо омодагӣ мо дар назар дорем: сервери навро аз қуттӣ ба сервери пурра танзимшуда бо OS табдил диҳед. Linux ё бо гипервизори ESXi (ҷойгиркунии серверҳои Windows дар ин мақола муҳокима карда нашудааст).

Шартҳои:

  • серверҳо - серверҳое, ки бояд танзим карда шаванд.
  • сервери насб сервери асосӣ мебошад, ки тамоми раванди омодасозии шабакаро таъмин мекунад.

Чаро автоматизатсия лозим аст?

Фарз мекунем, ки вазифае ҳаст: аз сифр ба таври оммавӣ омода кардани серверҳо, дар авҷи аъло - 30 дар як рӯз. Серверҳои истеҳсолкунандагон ва моделҳои гуногун, системаҳои гуногуни амалиётӣ метавонанд дар онҳо насб карда шаванд ва метавонанд гипервизор дошта бошанд ё набошанд.

Кадом амалиётҳо ба раванди насбкунӣ дохил мешаванд (бе автоматизатсия):

  • клавиатура, муш, мониторро ба сервер пайваст кунед;
  • танзим кардани BIOS, RAID, IPMI;
  • навсозии нармафзори ҷузъӣ;
  • тасвири системаи файлиро ҷойгир кунед (ё гипервизор насб кунед ва мошинҳои виртуалиро нусхабардорӣ кунед);

Шарҳ. Интихобан, ҷойгиркунии ОС тавассути насб бо файли ҷавоби худкор имконпазир аст. Аммо ин дар мақола муҳокима карда намешавад. Гарчанде ки шумо дар зер хоҳед дид, ки илова кардани ин функсия душвор нест.

  • конфигуратсияи параметрҳои ОС (номи мизбон, IP ва ғайра).

Бо ин равиш, ҳамон танзимот дар ҳар як сервер пайдарпай иҷро карда мешаванд. Самараи чунин корхо хеле паст аст.

Моҳияти автоматизатсия аз он иборат аст, ки иштироки инсон аз раванди омодасозии серверҳо нест карда шавад. То ҳадди имкон.

Автоматизатсия вақти бекористии байни амалиётҳоро коҳиш медиҳад ва имкон медиҳад, ки дар як вақт якчанд серверҳо таъмин карда шаванд. Эҳтимолияти хатогиҳо аз омилҳои инсонӣ низ хеле кам мешавад.

Таъмини металлӣ ё худкор омода кардани серверҳо аз сифр

Серверҳо чӣ гуна ба таври худкор танзим карда мешаванд?

Биёед ҳама марҳилаҳоро ба таври муфассал таҳлил кунем.

Шумо сервери Linux доред, ки онро ҳамчун сервери насби PXE истифода мебаред. Дар он хидматҳо насб ва танзим карда шудаанд: DHCP, TFTP.

Ҳамин тавр, мо серверро (ки бояд танзим карда шавад) тавассути PXE пурбор мекунем. Биёед дар хотир дорем, ки он чӣ гуна кор мекунад:

  • Дар сервер пурборкунии шабака интихоб карда мешавад.
  • Сервер PXE-ROM-и корти шабакаро бор мекунад ва барои дарёфти суроғаи шабака бо сервери насб тавассути DHCP тамос мегирад.
  • Сервери насби DHCP суроға ва инчунин дастурҳоро барои зеркашии минбаъда тавассути PXE медиҳад.
  • Сервер пурборкунандаи шабакаро аз сервери насб тавассути PXE бор мекунад, боркунии минбаъда мувофиқи файли конфигуратсияи PXE сурат мегирад.
  • Боркунӣ дар асоси параметрҳои гирифташуда сурат мегирад (ядро, initramfs, нуқтаҳои пайвастшавӣ, тасвири squashfs ва ғайра).

Шарҳ. Дар мақола пурборкунӣ тавассути PXE тавассути режими BIOS тасвир шудааст. Дар айни замон, истеҳсолкунандагон режими пурборкунандаи UEFI-ро фаъолона татбиқ мекунанд. Барои PXE, фарқият дар конфигуратсияи сервери DHCP ва мавҷудияти пурборкунандаи иловагӣ хоҳад буд.

Биёед мисоли конфигуратсияи сервери PXE-ро (менюи pxelinux) бубинем.

Файл pxelinux.cfg/default:

default menu.c32
prompt 0
timeout 100
menu title X5 PXE Boot Menu
LABEL InstallServer Menu
	MENU LABEL InstallServer
	KERNEL menu.c32
	APPEND pxelinux.cfg/installserver
LABEL VMware Menu
	MENU LABEL VMware ESXi Install
	KERNEL menu.c32
	APPEND pxelinux.cfg/vmware
LABEL toolkit // меню по умолчанию
	MENU LABEL Linux Scripting Toolkits
	MENU default
	KERNEL menu.c32
	APPEND pxelinux.cfg/toolkit // переход на следующее меню

Файл pxelinux.cfg/toolkit:

prompt 0
timeout 100
menu title X5 PXE Boot Menu
label mainmenu
    menu label ^Return to Main Menu
    kernel menu.c32
    append pxelinux.cfg/default
label x5toolkit-auto // по умолчанию — автоматический режим
        menu label x5 toolkit autoinstall
        menu default
        kernel toolkit/tkcustom-kernel
        append initrd=toolkit/tk-initramfs.gz quiet net.ifnames=0 biosdevname=0 nfs_toolkit_ip=192.168.200.1 nfs_toolkit_path=tftpboot/toolkit nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh CMDIS2=”…”
label x5toolkit-shell // для отладки - консоль
        menu label x5 toolkit shell
        kernel toolkit/tkcustom-kernel
        append initrd=toolkit/tkcustom-initramfs.gz quiet net.ifnames=0 biosdevname=0 nfs_toolkit_ip=192.168.200.1 nfs_toolkit_path=tftpboot/toolkit nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash CMDIS2=”…”

Ядро ва initramfs дар ин марҳила тасвири фосилавии Linux мебошанд, ки бо ёрии он омодагӣ ва конфигуратсияи асосии сервер сурат мегирад.

Тавре ки шумо мебинед, пурборкунанда параметрҳои зиёдеро ба ядро ​​​​мегузарад. Баъзе аз ин параметрҳоро худи ядро ​​истифода мебаранд. Ва мо метавонем баъзеро барои мақсадҳои худ истифода барем. Инро дертар баррасӣ хоҳад кард, аммо ҳоло шумо метавонед танҳо дар хотир доред, ки ҳамаи параметрҳои гузашта дар тасвири мобайнии Linux тавассути /proc/cmdline дастрас хоҳанд буд.

Ман онҳоро, ядро ​​ва initramfҳоро аз куҷо гирифта метавонам?
Ҳамчун асос, шумо метавонед ҳама гуна тақсимоти Linux-ро интихоб кунед. Ҳангоми интихоб ба он чизе, ки мо диққат медиҳем:

  • тасвири пурборшаванда бояд универсалӣ бошад (мавҷудияти драйверҳо, қобилияти насб кардани хидматҳои иловагӣ);
  • Эҳтимол, шумо бояд initramfs -ро танзим кунед.

Ин дар ҳалли мо барои X5 чӣ гуна анҷом дода мешавад? Ба сифати асос CentOS 7 интихоб шуд.Биёед як ҳиллаи зеринро бисанҷем: сохтори тасвири ояндаро омода созед, онро ба бойгонӣ ҷамъ кунед ва initramfs созед, ки дар дохили он бойгонии системаи файлии мо мавҷуд аст. Ҳангоми боркунии тасвир, бойгонӣ ба қисмати сохташудаи tmpfs васеъ карда мешавад. Бо ин роҳ, мо тасвири ҳадди ақал, вале мукаммали зиндаи Linux-ро бо тамоми утилитаҳои зарурӣ мегирем, ки танҳо аз ду файл иборат аст: vmkernel ва initramfs.

#создаем директории: 

mkdir -p /tftpboot/toolkit/CustomTK/rootfs /tftpboot/toolkit/CustomTK/initramfs/bin

#подготавливаем структуру:

yum groups -y install "Minimal Install" --installroot=/tftpboot/toolkit/CustomTK/rootfs/
yum -y install nfs-utils mariadb ntpdate mtools syslinux mdadm tbb libgomp efibootmgr dosfstools net-tools pciutils openssl make ipmitool OpenIPMI-modalias rng-tools --installroot=/tftpboot/toolkit/CustomTK/rootfs/
yum -y remove biosdevname --installroot=/tftpboot/toolkit/CustomTK/rootfs/

# подготавливаем initramfs:

wget https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64 -O /tftpboot/toolkit/CustomTK/initramfs/bin/busybox
chmod a+x /tftpboot/toolkit/CustomTK/initramfs/bin/busybox
cp /tftpboot/toolkit/CustomTK/rootfs/boot/vmlinuz-3.10.0-957.el7.x86_64 /tftpboot/toolkit/tkcustom-kernel

# создаем /tftpboot/toolkit/CustomTK/initramfs/init (ниже содержание скрипта):

#!/bin/busybox sh
/bin/busybox --install /bin
mkdir -p /dev /proc /sys /var/run /newroot
mount -t proc proc /proc
mount -o mode=0755 -t devtmpfs devtmpfs /dev
mkdir -p /dev/pts /dev/shm /dev/mapper /dev/vc
mount -t devpts -o gid=5,mode=620 devpts /dev/pts
mount -t sysfs sysfs /sys
mount -t tmpfs -o size=4000m tmpfs /newroot
echo -n "Extracting rootfs... "
xz -d -c -f rootfs.tar.xz | tar -x -f - -C /newroot
echo "done"
mkdir -p /newroot/dev /newroot/proc /newroot/sys
mount --move /sys  /newroot/sys
mount --move /proc /newroot/proc
mount --move /dev  /newroot/dev
exec switch_root /newroot /sbin/init

# упаковываем rootfs и initramfs:

cd /tftpboot/toolkit/CustomTK/rootfs
tar cJf /tftpboot/toolkit/CustomTK/initramfs/rootfs.tar.xz --exclude ./proc --exclude ./sys --exclude ./dev .
cd /tftpboot/toolkit/CustomTK/initramfs
find . -print0 | cpio --null -ov --format=newc | gzip -9 > /tftpboot/toolkit/tkcustom-initramfs-new.gz

Ҳамин тавр, мо ядро ​​ва initramf-ро муайян кардем, ки бояд бор карда шаванд. Дар натиҷа, дар ин марҳила, тавассути бор кардани тасвири фосилавии Linux тавассути PXE, мо консол OS-ро мегирем.

Аҷоиб, аммо ҳоло ба мо лозим аст, ки назоратро ба "автоматикунонии" худ гузаронем.

Инро хамин тавр кардан мумкин аст.

Фарз мекунем, ки пас аз боркунии тасвир мо нақша дорем, ки назоратро ба скрипти mount.sh интиқол диҳем.
Биёед скрипти mount.sh -ро дар autorun дохил кунем. Барои ин ба шумо лозим меояд, ки initramfs -ро тағир диҳед:

  • initramfs-ро кушоед (агар мо имконоти дар боло зикршударо истифода барем, ин талаб карда намешавад)
  • кодро дар оғозёбӣ дохил кунед, ки параметрҳои тавассути /proc/cmdline гузаштаро таҳлил мекунад ва назорати минбаъдаро интиқол медиҳад;
  • бастаи initramfs.

Шарҳ. Дар мавриди асбобҳои X5, назорати боркунӣ ба скрипт интиқол дода мешавад /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

Ҳамин тавр, тасвир бор карда мешавад, ки дар он скрипти mount.sh аз autorun оғоз мешавад. Баъдан, скрипти mount.sh параметрҳои додашударо (script_cmd=) ҳангоми иҷро таҳлил мекунад ва барнома/скрипти заруриро оғоз мекунад.

маҷмӯи абзор -мошин
ядро ...
замима кунед... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

маҷмӯи абзор -пӯст
ядро ...
замима кунед... nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Таъмини металлӣ ё худкор омода кардани серверҳо аз сифр

Дар ин ҷо дар тарафи чап менюи PXE, дар тарафи рост диаграммаи интиқоли назорат аст.

Мо интиқоли назоратро фаҳмидем. Вобаста аз интихоби менюи PXE, ё скрипти худкор-конфигуратсия ё консоли хатогиҳо оғоз мешавад.

Дар ҳолати конфигуратсияи худкор, аз сервери насб директорияҳои зарурӣ насб карда мешаванд, ки дар бар мегиранд:

  • скриптҳо;
  • қолибҳои BIOS/UEFI захирашуда барои серверҳои гуногун;
  • нармафзори миёнаравӣ;
  • утилитаҳои сервер;
  • гузоришҳо

Баъдан, скрипти mount.sh идораро ба скрипти master-install.sh аз директорияи скрипт интиқол медиҳад.

Дарахти скрипт (тартиби ба кор андохтани онҳо) чунин менамояд:

  • усто-монтаж
  • функсияҳои муштарак (функсияҳои муштарак)
  • маълумот (баромади иттилоот)
  • моделҳо (муқаррар кардани параметрҳои насб дар асоси модели сервер)
  • Preparat_utils (насб кардани утилитаҳои зарурӣ)
  • fwupdate (навсозии нармафзор)
  • ташхис (диагностикаи ибтидоӣ)
  • biosconf (танзимоти BIOS/UEFI)
  • clockfix (муқаррар кардани вақт дар motherboard)
  • srmconf (конфигуратсияи интерфейси дурдаст)
  • raidconf (конфигуратсияи ҳаҷми мантиқӣ)

яке аз:

  • пешакӣ насб (интиқоли назорат ба OS ё насбкунандаи гипервизор, ба монанди ESXi)
  • якҷоя-насб (оғози фаврии кушодани тасвир)

Акнун мо медонем:

  • чӣ тавр пурбор кардани сервер тавассути PXE;
  • чӣ тавр интиқол додани назорат ба скрипти худ.


Биёед идома диҳем. Саволҳои зерин аҳамиятнок шуданд:

  • Сервереро, ки мо омода карда истодаем, чӣ гуна бояд муайян кард?
  • Кадом утилитҳо ва чӣ гуна серверро танзим кардан мумкин аст?
  • Чӣ тавр ба даст овардани танзимот барои сервери мушаххас?

Сервереро, ки мо омода карда истодаем, чӣ гуна бояд муайян кард?

Ин оддӣ аст - DMI:

dmidecode –s system-product-name
dmidecode –s system-manufacturer
dmidecode –s system-serial-number

Ҳама чизест, ки ба шумо лозим аст: фурӯшанда, модел, рақами силсилавӣ. Агар шумо боварӣ надошта бошед, ки ин маълумот дар ҳама серверҳо мавҷуд аст, шумо метавонед онҳоро аз рӯи суроғаи MAC-и онҳо муайян кунед. Ё дар ҳарду роҳ дар як вақт, агар фурӯшандагони сервер гуногун бошанд ва дар баъзе моделҳо маълумот дар бораи рақами силсилавӣ мавҷуд набошад.

Дар асоси маълумоти гирифташуда, ҷузвдонҳои шабакавӣ аз сервери насбкунӣ васл карда мешаванд ва ҳама чизҳои зарурӣ (утилитҳо, нармафзор ва ғайра) бор карда мешаванд.

Кадом утилитҳо ва чӣ гуна серверро танзим кардан мумкин аст?

Ман барои баъзе истеҳсолкунандагон хидматҳои Linuxро таъмин мекунам. Ҳама хидматҳо дар вебсайтҳои расмии фурӯшандагон дастрасанд.

Таъмини металлӣ ё худкор омода кардани серверҳо аз сифр

Бо нармафзор, ман фикр мекунам, ки ҳама чиз равшан аст. Онҳо одатан дар шакли файлҳои иҷрошавандаи бастабандӣ меоянд. Файли иҷрошаванда раванди навсозии нармафзорро назорат мекунад ва рамзи бозгаштро гузориш медиҳад.

BIOS ва IPMI одатан тавассути қолибҳо танзим карда мешаванд. Агар лозим бошад, қолабро пеш аз зеркашӣ таҳрир кардан мумкин аст.

Утилитҳои RAID аз баъзе фурӯшандагон инчунин метавонанд бо истифода аз қолаб танзим карда шаванд. Агар ин тавр набошад, шумо бояд скрипти конфигуратсияро нависед.

Тартиби танзими RAID аксар вақт чунин аст:

  • Мо конфигуратсияи ҷориро талаб мекунем.
  • Агар аллакай массивҳои мантиқӣ вуҷуд дошта бошанд, мо онҳоро тоза мекунем.
  • Биёед бубинем, ки кадом дискҳои физикӣ мавҷуданд ва чанд нафаранд.
  • Массиви нави мантиқӣ эҷод кунед. Дар сурати пайдо шудани хато мо равандро қатъ мекунем.

Чӣ тавр ба даст овардани танзимот барои сервери мушаххас?

Фарз мекунем, ки танзимоти ҳама серверҳо дар сервери насбкунӣ нигоҳ дошта мешаванд. Дар ин ҳолат, барои ҷавоб додан ба саволи мо, мо бояд аввал тасмим гирем, ки чӣ гуна танзимотро ба сервери насб интиқол диҳем.

Дар аввал, шумо метавонед бо файлҳои матнӣ кор кунед. (Дар оянда шумо метавонед файли матниро ҳамчун усули бозгашт барои интиқоли танзимот истифода баред.)

Шумо метавонед файли матниро дар сервери насб "мубодила кунед". Ва монтажи онро ба скрипти mount.sh илова кунед.

Масалан, сатрҳо чунин хоҳанд буд:

<рақами серия> <номи мизбон> <зершабака>

Ин хатҳоро муҳандис аз мошини кории худ ба файл интиқол медиҳад. Ва он гоҳ, ҳангоми насб кардани сервер, параметрҳои сервери мушаххас аз файл хонда мешаванд.

Аммо, дар дарозмуддат, беҳтар аст, ки пойгоҳи додаҳоро барои нигоҳ доштани танзимот, ҳолатҳо ва сабтҳои насби сервер истифода баред.

Албатта, танҳо як пойгоҳи додаҳо кофӣ нест ва шумо бояд як қисми муштариро эҷод кунед, ки бо ёрии он танзимот ба пойгоҳи додаҳо интиқол дода мешавад. Татбиқи ин дар муқоиса бо файли матнӣ душвортар аст, аммо дар асл, ҳама чиз он қадар душвор нест, ки ба назар мерасад. Навиштани версияи ҳадди ақали муштарӣ комилан имконпазир аст, ки маълумотро худатон ба базаи маълумот интиқол медиҳад. Ва дар оянда мумкин аст, ки барномаи муштарӣ дар ҳолати озод такмил дода шавад (ҳисоботҳо, чопи тамғакоғазҳо, фиристодани огоҳиҳо ва ғайра, ки ба хотир меоянд).

Бо пешниҳоди дархости мушаххас ба пойгоҳи додаҳо ва муайян кардани рақами силсилавии сервер, мо параметрҳои заруриро барои конфигуратсияи сервер мегирем.

Илова бар ин, ба мо лозим нест, ки қулфҳоро барои дастрасии ҳамзамон пайдо кунем, ба монанди файли матнӣ.

Мо метавонем дар ҳама марҳилаҳо сабти конфигуратсияро ба пойгоҳи додаҳо нависем ва раванди насбро тавассути рӯйдодҳо ва парчамҳои марҳилаҳои омодагӣ назорат кунем.

Акнун мо медонем, ки чӣ тавр:

  • серверро тавассути PXE пурбор кунед;
  • интиқоли назорат ба скрипти мо;
  • муайян кардани сервере, ки бояд бо рақами силсилавии он омода карда шавад;
  • серверро бо истифода аз утилитаҳои мувофиқ танзим кунед;
  • интиқоли танзимот ба пойгоҳи сервери насбкунӣ бо истифода аз қисми муштарӣ.

Мо фаҳмидем, ки чӣ тавр:

  • сервери насбшуда танзимоти заруриро аз пойгоҳи додаҳо қабул мекунад;
  • тамоми рафти омодагӣ дар базаи маълумот сабт карда мешавад (журналҳо, рӯйдодҳо, парчамҳои саҳна).

Дар бораи намудҳои гуногуни нармафзоре, ки шумо насб мекунед, чӣ гуфтан мумкин аст? Чӣ тавр гипервизорро насб кардан, VM-ро нусхабардорӣ кардан ва ҳамаашро танзим кардан мумкин аст?

Дар ҳолати ҷойгиркунии тасвири системаи файлӣ (linux) ба сахтафзор, ҳама чиз хеле оддӣ аст:

  • Пас аз насб кардани ҳама ҷузъҳои сервер, мо тасвирро ҷойгир мекунем.
  • Grub bootloader -ро насб кунед.
  • Мо ҳама чизи лозимаро chroot ва танзим мекунем.

Чӣ тавр назоратро ба насбкунандаи OS интиқол додан мумкин аст (бо истифода аз ESXi ҳамчун мисол).

  • Мо интиқоли назоратро аз скрипти худ ба насбкунандаи гипервизор бо истифода аз файли посухи автоматӣ (kickstart) ташкил мекунем:
  • Мо қисмҳои ҷории дискро нест мекунем.
  • Қисмеро бо андозаи 500 МБ созед.
  • Мо онро ҳамчун пурборшаванда қайд мекунем.
  • Формат ба FAT32.
  • Мо файлҳои насби ESXi-ро ба реша нусхабардорӣ мекунем.
  • Насб кардани syslinux.
  • Нусхабардории syslinux.cfg ба /syslinux/

default esxi
prompt 1
timeout 50
label esxi
kernel mboot.c32
append -c boot.cfg

  • mboot.c32-ро ба /syslinux нусхабардорӣ кунед.
  • Boot.cfg бояд kernelopt=ks=ftp:// дошта бошад /ks_esxi.cfg
  • Мо серверро бозоғоз мекунем.

Пас аз бозоғозкунии сервер, насбкунандаи ESXi аз диски сахти сервер зеркашӣ карда мешавад. Ҳама файлҳои насбкунандаи зарурӣ ба хотира бор карда мешаванд ва сипас насби ESXi мувофиқи файли ҷавоби худкори муайяншуда оғоз мешавад.

Инҳоянд чанд сатр аз файли ҷавоби худкор ks_esxi.cfg:

%firstboot --interpreter=busybox
…
# получаем серийный номер

SYSSN=$(esxcli hardware platform get | grep Serial | awk -F " " '{print $3}')

# получаем IP

IPADDRT=$(esxcli network ip interface ipv4 get | grep vmk0 | awk -F " " '{print $2}')
LAST_OCTET=$(echo $IPADDRT | awk -F'.' '{print $4}')

# подключаем NFS инсталл-сервера

esxcli storage nfs add -H is -s /srv/nfs_share -v nfsshare1

# копируем временные настройки ssh, для использования ssh-клиента

mv /etc/ssh /etc/ssh.tmp
cp -R /vmfs/volumes/nfsshare1/ssh /etc/
chmod go-r /etc/ssh/ssh_host_rsa_key

# копируем ovftool, для развертывания ВМ сейчас, плюс возможно пригодится позже

cp -R /vmfs/volumes/nfsshare1/ovftool /vmfs/volumes/datastore1/

# развертываем ВМ

/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM1 /vmfs/volumes/nfsshare1/VM_T/VM1.ova vi://root:[email protected]
/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM2 /vmfs/volumes/nfsshare1/VM_T/VM2.ova vi://root:[email protected]

# получаем строку с настройками нашего сервера

ssh root@is "mysql -h'192.168.0.1' -D'servers' -u'user' -p'secretpassword' -e "SELECT ... WHERE servers.serial='$SYSSN'"" | grep -v ^$ | sed 's/NULL//g' > /tmp/servers
...
# генерируем скрипт настройки сети

echo '#!/bin/sh' > /vmfs/volumes/datastore1/netconf.sh
echo "esxcli network ip interface ipv4 set -i=vmk0 -t=static --ipv4=$IPADDR --netmask=$S_SUB || exit 1" >> /vmfs/volumes/datastore1/netconf.sh
echo "esxcli network ip route ipv4 add -g=$S_GW -n=default || exit 1" >> /vmfs/volumes/datastore1/netconf.sh
chmod a+x /vmfs/volumes/datastore1/netconf.sh

# задаем параметр guestinfo.esxihost.id, указываем в нем серийный номер

echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM1/VM1.vmx
echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM2/VM2.vmx
...
# обновляем информацию в базе

SYSNAME=$(esxcli hardware platform get | grep Product | sed 's/Product Name://' | sed 's/^ *//')
UUID=$(vim-cmd hostsvc/hostsummary | grep uuid | sed 's/ //g;s/,$//' | sed 's/^uuid="//;s/"$//')
ssh root@is "mysql -D'servers' -u'user' -p'secretpassword' -e "UPDATE servers ... SET ... WHERE servers.serial='$SYSSN'""
ssh root@is "mysql -D'servers' -u'user' -p'secretpassword' -e "INSERT INTO events ...""

# возвращаем настройки SSH

rm -rf /etc/ssh
mv /etc/ssh.tmp /etc/ssh

# настраиваем сеть и перезагружаемся

esxcli system hostname set --fqdn=esx-${G_NICK}.x5.ru
/vmfs/volumes/datastore1/netconf.sh
reboot

Дар ин марҳила, гипервизор насб ва танзим карда мешавад ва мошинҳои виртуалӣ нусхабардорӣ карда мешаванд.

Ҳоло мошинҳои виртуалиро чӣ гуна бояд танзим кард?

Мо каме фиреб додем: ҳангоми насбкунӣ мо параметри guestinfo.esxihost.id = "$SYSSN" -ро дар файли VM1.vmx гузошта, рақами силсилавии сервери физикиро дар он нишон додем.

Акнун, пас аз оғоз, мошини виртуалӣ (бо бастаи vmware-tools насб карда шудааст) метавонад ба ин параметр дастрасӣ пайдо кунад:

ESXI_SN=$(vmtoolsd --cmd "info-get guestinfo.esxihost.id")

Яъне, VM метавонад худро муайян кунад (он рақами силсилавии мизбони ҷисмониро медонад), ба базаи сервери насб дархост пешниҳод кунад ва параметрҳоеро, ки бояд танзим карда шаванд, қабул кунад. Ин ҳама дар як скрипт тартиб дода шудааст, ки он бояд ҳангоми оғоз шудани guestos vm ба таври худкор оғоз шавад (вале як маротиба: RunOnce).

Акнун мо медонем, ки чӣ тавр:

  • серверро тавассути PXE пурбор кунед;
  • интиқоли назорат ба скрипти мо;
  • муайян кардани сервере, ки бояд бо рақами силсилавии он омода карда шавад;
  • серверро бо истифода аз утилитаҳои мувофиқ танзим кунед;
  • интиқоли танзимот ба базаи сервери насбкунӣ бо истифода аз қисми муштарӣ;
  • намудҳои гуногуни нармафзорро танзим кунед, аз ҷумла ҷойгиркунии гипервизори esxi ва танзими мошинҳои виртуалӣ (ҳама ба таври худкор).

Мо фаҳмидем, ки чӣ тавр:

  • сервери насбшуда танзимоти заруриро аз пойгоҳи додаҳо қабул мекунад;
  • тамоми рафти омодагӣ дар базаи маълумот сабт карда мешавад (журналҳо, рӯйдодҳо, парчамҳои саҳна).


Поёни хати:

Ман боварӣ дорам, ки беназирии ин қарор дар чандирӣ, соддагӣ, қобилиятҳо ва гуногунҷабҳаи он аст.

Лутфан дар шарҳҳо чӣ фикр доред.

Манбаъ: will.com

Илова Эзоҳ