Жалаңаш металл дайындау немесе серверлерді нөлден автоматты түрде дайындау

Сәлеметсіз бе, мен Денис және менің қызмет бағыттарымның бірі - X5-те инфрақұрылымдық шешімдерді әзірлеу. Бүгін мен сіздермен жалпыға қолжетімді құралдарға негізделген автоматты серверді дайындау жүйесін қалай орналастыруға болатынын бөліскім келеді. Менің ойымша, бұл қызықты, қарапайым және икемді шешім.

Жалаңаш металл дайындау немесе серверлерді нөлден автоматты түрде дайындау

Дайындау арқылы біз мынаны айтамыз: жаңа серверді қораптан ОЖ толық конфигурацияланған серверге айналдыру. Linux немесе ESXi гипервизорымен (Windows серверлерін орналастыру осы мақалада талқыланбайды).

Терминдер:

  • серверлер – конфигурациялануы қажет серверлер.
  • орнату сервері – желі арқылы бүкіл дайындық процесін қамтамасыз ететін негізгі сервер.

Автоматтандыру не үшін қажет?

Тапсырма бар делік: серверлерді нөлден жаппай дайындау, шыңында – күніне 30. Оларда әртүрлі өндірушілер мен модельдердің серверлері, әртүрлі операциялық жүйелер орнатылуы мүмкін және гипервизоры болуы немесе болмауы мүмкін.

Орнату процесіне қандай операциялар кіреді (автоматтандырусыз):

  • серверге пернетақтаны, тінтуірді, мониторды қосу;
  • BIOS, RAID, IPMI конфигурациялау;
  • құрамдас микробағдарламаны жаңарту;
  • файлдық жүйе кескінін орналастыру (немесе гипервизорды орнату және виртуалды машиналарды көшіру);

Ескерту. Немесе, ОЖ-ны қолдану автоматты жауап файлымен орнату арқылы мүмкін болады. Бірақ бұл мақалада талқыланбайды. Бұл функцияны қосу қиын емес екенін төменде көресіз.

  • ОЖ параметрлерін конфигурациялау (хост аты, IP және т.б.).

Бұл тәсілмен бірдей параметрлер әрбір серверде ретімен орындалады. Мұндай жұмыстардың тиімділігі өте төмен.

Автоматтандырудың мәні серверді дайындау процесіне адамның қатысуын жою болып табылады. Мүмкіндігінше.

Автоматтандыру операциялар арасындағы үзіліс уақытын азайтады және бір уақытта бірнеше серверлерді қамтамасыз етуге мүмкіндік береді. Сондай-ақ адами факторларға байланысты қателер ықтималдығы айтарлықтай төмендейді.

Жалаңаш металл дайындау немесе серверлерді нөлден автоматты түрде дайындау

Серверлер автоматты түрде қалай конфигурацияланады?

Барлық кезеңдерді егжей-тегжейлі талдап көрейік.

Сізде PXE орнату сервері ретінде пайдаланатын Linux сервері бар. Онда қызметтер орнатылған және конфигурацияланған: DHCP, TFTP.

Сонымен, PXE арқылы серверді (конфигурациялау қажет) жүктейміз. Оның қалай жұмыс істейтінін еске түсірейік:

  • Серверде желіні жүктеу таңдалды.
  • Сервер желілік картаның PXE-ROM файлын жүктейді және желі мекенжайын алу үшін DHCP арқылы орнату серверімен байланысады.
  • DHCP орнату сервері мекенжайды, сондай-ақ PXE арқылы одан әрі жүктеуге арналған нұсқауларды береді.
  • Сервер желі жүктеушісін орнату серверінен PXE арқылы жүктейді, одан әрі жүктеу PXE конфигурация файлына сәйкес жүзеге асырылады.
  • Жүктеу алынған параметрлер (ядро, initramfs, бекіту нүктелері, squashfs кескіні және т.б.) негізінде жүзеге асырылады.

Ескерту. Мақалада BIOS режимі арқылы PXE арқылы жүктеу сипатталған. Қазіргі уақытта өндірушілер 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 арқылы қол жетімді болатынын есте сақтай аласыз.

Оларды қайдан алуға болады, ядро ​​және initramfs?
Негіз ретінде сіз кез келген 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 арқылы жүктеу арқылы біз ОЖ консолін аламыз.

Тамаша, бірақ енді басқаруды «автоматтандыруға» беру керек.

Мұны осылай жасауға болады.

Кескінді жүктегеннен кейін басқаруды mount.sh сценарийіне көшіруді жоспарлап отырмыз делік.
Autorun ішіне mount.sh сценарийін қосамыз. Мұны істеу үшін initramfs өзгерту қажет:

  • initramfs орамасын ашу (егер біз жоғарыдағы initramfs опциясын қолдансақ, бұл қажет емес)
  • /proc/cmdline арқылы өткен параметрлерді талдайтын және әрі қарай басқаруды тасымалдайтын іске қосуға кодты қосыңыз;
  • initramfs бумасы.

Ескерту. X5 құралдар жинағы жағдайында жүктеуді басқару сценарийге беріледі /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

Сонымен, mount.sh сценарийі автоматты іске қосу кезінде басталатын кескін жүктелді. Әрі қарай, mount.sh сценарийі орындалу кезінде берілген параметрлерді талдайды (script_cmd=) және қажетті бағдарламаны/скриптті іске қосады.

жапсырма құралдар жинағы-автоматты
ядро...
append...nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

жапсырма құралдар жинағы-Shell
ядро...
append...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 параметрлері)
  • сағатты түзету (аналық платадағы уақытты орнату)
  • srmconf (қашықтағы интерфейс интерфейсінің конфигурациясы)
  • raidconf (логикалық көлемдерді конфигурациялау)

біреуі:

  • алдын ала орнату (басқаруды операциялық жүйеге немесе 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 арқылы жүктеу;
  • басқаруды біздің сценарийге тасымалдау;
  • оның сериялық нөмірі бойынша дайындалуы қажет серверді анықтау;
  • сәйкес утилиталарды пайдаланып серверді конфигурациялау;
  • орнату серверінің дерекқорына клиент бөлігін пайдаланып параметрлерді тасымалдау.

Біз қалай білдік:

  • орнатылған сервер дерекқордан қажетті параметрлерді алады;
  • барлық дайындық барысы дерекқорға жазылады (журналдар, оқиғалар, сахналық жалаулар).

Сіз орнатқан бағдарламалық құралдың әртүрлі түрлері туралы не айтасыз? Гипервизорды қалай орнатуға, виртуалды компьютерді көшіруге және барлығын конфигурациялауға болады?

Аппараттық құралға файлдық жүйе кескінін (linux) орналастыру жағдайында бәрі өте қарапайым:

  • Барлық сервер құрамдастарын орнатқаннан кейін кескінді орналастырамыз.
  • Grub жүктегішін орнатыңыз.
  • Біз chroot жасаймыз және қажеттінің бәрін конфигурациялаймыз.

Басқаруды ОЖ орнатушысына қалай беруге болады (мысал ретінде 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

Бұл кезеңде гипервизор орнатылып, конфигурацияланады, виртуалды машиналар көшіріледі.

Енді виртуалды машиналарды қалай конфигурациялауға болады?

Біз аздап алдадық: орнату кезінде VM1.vmx файлында guestinfo.esxihost.id = «$SYSSN» параметрін орнаттық және ондағы физикалық сервердің сериялық нөмірін көрсеттік.

Енді іске қосқаннан кейін виртуалды машина (vmware-tools пакеті орнатылған) осы параметрге қол жеткізе алады:

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

Яғни, VM өзін идентификациялай алады (ол физикалық хосттың сериялық нөмірін біледі), орнату серверінің дерекқорына сұраныс жасай алады және конфигурациялануы қажет параметрлерді алады. Мұның бәрі сценарийге жинақталған, ол guestos vm іске қосылғанда автоматты түрде іске қосылуы керек (бірақ бір рет: RunOnce).

Енді біз қалай білеміз:

  • серверді PXE арқылы жүктеу;
  • басқаруды біздің сценарийге тасымалдау;
  • оның сериялық нөмірі бойынша дайындалуы қажет серверді анықтау;
  • сәйкес утилиталарды пайдаланып серверді конфигурациялау;
  • клиент бөлігін пайдаланып орнату серверінің дерекқорына параметрлерді тасымалдау;
  • esxi гипервизорын қолдануды және виртуалды машиналарды конфигурациялауды қоса алғанда, бағдарламалық құралдың әртүрлі түрлерін конфигурациялаңыз (барлығы автоматты түрде).

Біз қалай білдік:

  • орнатылған сервер дерекқордан қажетті параметрлерді алады;
  • барлық дайындық барысы дерекқорға жазылады (журналдар, оқиғалар, сахналық жалаулар).


Астыңғы сызық:

Бұл шешімнің бірегейлігі оның икемділігінде, қарапайымдылығында, мүмкіндіктері мен жан-жақтылығында деп ойлаймын.

Пікірге өз ойларыңызды жазыңыз.

Ақпарат көзі: www.habr.com

пікір қалдыру