ඔබ විසින්ම කරන්න Bare-Metal Provisioning, හෝ මුල සිටම සේවාදායකයන් ස්වයංක්‍රීයව සකස් කිරීම

හෙලෝ, මම ඩෙනිස් වන අතර මගේ ක්‍රියාකාරකම්වල එක් අංශයක් වන්නේ X5 හි යටිතල පහසුකම් විසඳුම් සංවර්ධනය කිරීමයි. ප්‍රසිද්ධියේ පවතින මෙවලම් මත පදනම්ව ඔබට ස්වයංක්‍රීය සේවාදායක සූදානම් කිරීමේ පද්ධතියක් යෙදවිය හැකි ආකාරය අද මම ඔබ සමඟ බෙදා ගැනීමට කැමැත්තෙමි. මගේ මතය අනුව, මෙය රසවත්, සරල සහ නම්යශීලී විසඳුමකි.

ඔබ විසින්ම කරන්න Bare-Metal Provisioning, හෝ මුල සිටම සේවාදායකයන් ස්වයංක්‍රීයව සකස් කිරීම

සූදානම් වීමෙන් අපි අදහස් කරන්නේ: නව සේවාදායකයක් කොටුවෙන් පිටත OS සමඟ සම්පුර්ණයෙන්ම වින්‍යාසගත සේවාදායකයක් බවට පත් කිරීමයි. Linux හෝ ESXi හයිපර්වයිසර් සමඟ (වින්ඩෝස් සේවාදායකයන් යෙදවීම මෙම ලිපියේ සාකච්ඡා නොකෙරේ).

නියමයන්:

  • සේවාදායකයන් - වින්‍යාසගත කළ යුතු සේවාදායකයන්.
  • ස්ථාපන සේවාදායකය යනු ජාලය හරහා සම්පූර්ණ සූදානම් කිරීමේ ක්‍රියාවලිය සපයන ප්‍රධාන සේවාදායකයයි.

ස්වයංක්රීයකරණය අවශ්ය වන්නේ ඇයි?

කාර්යයක් ඇතැයි කියමු: මුල සිටම සේවාදායකයන් විශාල වශයෙන් සකස් කිරීම, උපරිමය - දිනකට 30. විවිධ නිෂ්පාදකයින් සහ මාදිලිවල සේවාදායකයන්, විවිධ මෙහෙයුම් පද්ධති ඒවා මත ස්ථාපනය කර තිබිය හැකි අතර, හයිපර්වයිසර් එකක් හෝ නොතිබිය හැකිය.

සැකසුම් ක්‍රියාවලියට ඇතුළත් කර ඇති මෙහෙයුම් මොනවාද (ස්වයංක්‍රීයකරණයකින් තොරව):

  • යතුරුපුවරුවක්, මූසිකයක්, මොනිටරයක් ​​සේවාදායකයට සම්බන්ධ කරන්න;
  • BIOS, RAID, IPMI වින්‍යාස කරන්න;
  • සංරචක ස්ථිරාංග යාවත්කාලීන කරන්න;
  • ගොනු පද්ධති රූපයක් යෙදවීම (හෝ හයිපර්වයිසර් ස්ථාපනය කර අතථ්‍ය යන්ත්‍ර පිටපත් කරන්න);

සටහන. විකල්පයක් ලෙස, ස්වයංක්‍රීය ප්‍රතිචාර ගොනුවක් සමඟ ස්ථාපනය කිරීම හරහා OS යෙදවීම කළ හැකිය. නමුත් මෙය ලිපියේ සාකච්ඡා නොකරනු ඇත. මෙම ක්‍රියාකාරීත්වය එකතු කිරීම අපහසු නොවන බව ඔබට පහතින් පෙනෙනු ඇත.

  • OS පරාමිති වින්‍යාස කරන්න (ධාරක නාමය, IP, ආදිය).

මෙම ප්රවේශය සමඟ, එක් එක් සේවාදායකයේ එකම සැකසුම් අනුපිළිවෙලින් සිදු කරනු ලැබේ. එවැනි කාර්යයක කාර්යක්ෂමතාව ඉතා අඩුය.

ස්වයංක්‍රීයකරණයේ සාරය නම් සේවාදායකය සැකසීමේ ක්‍රියාවලියෙන් මිනිස් සහභාගීත්වය ඉවත් කිරීමයි. හැකි තරම්.

ස්වයංක්‍රීයකරණය මෙහෙයුම් අතර අක්‍රිය කාලය අඩු කරන අතර එකවර බහු සේවාදායකයන් සැපයීමට හැකි වේ. මානව සාධක හේතුවෙන් දෝෂ ඇතිවීමේ සම්භාවිතාව ද බෙහෙවින් අඩු වේ.

ඔබ විසින්ම කරන්න Bare-Metal Provisioning, හෝ මුල සිටම සේවාදායකයන් ස්වයංක්‍රීයව සකස් කිරීම

සේවාදායකයන් ස්වයංක්‍රීයව වින්‍යාස කරන්නේ කෙසේද?

අපි සියලු අදියරයන් විස්තරාත්මකව විශ්ලේෂණය කරමු.

ඔබ PXE ස්ථාපන සේවාදායකයක් ලෙස භාවිතා කරන Linux සේවාදායකයක් ඇත. සේවා ස්ථාපනය කර එය මත වින්‍යාස කර ඇත: DHCP, TFTP.

එබැවින්, අපි PXE හරහා සේවාදායකය (වින්‍යාසගත කළ යුතු) ආරම්භ කරමු. එය ක්‍රියා කරන ආකාරය මතක තබා ගනිමු:

  • ජාල ආරම්භය සේවාදායකය මත තෝරා ඇත.
  • සේවාදායකය ජාල කාඩ්පතේ PXE-ROM පටවන අතර ජාල ලිපිනයක් ලබා ගැනීම සඳහා DHCP හරහා ස්ථාපන සේවාදායකය සම්බන්ධ කරයි.
  • DHCP ස්ථාපන සේවාදායකය PXE හරහා තවදුරටත් බාගත කිරීම සඳහා ලිපිනයක් මෙන්ම උපදෙස් නිකුත් කරයි.
  • සේවාදායකය PXE හරහා ස්ථාපන සේවාදායකයෙන් ජාල ඇරඹුම් කාරකය පූරණය කරයි, PXE වින්‍යාස ගොනුව අනුව තවදුරටත් පැටවීම සිදුවේ.
  • ලැබුණු පරාමිති (kernel, initramfs, mount points, 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 අතරමැදි ලිනක්ස් රූපයක් වන අතර, එහි ආධාරයෙන් සේවාදායකයේ ප්‍රධාන සකස් කිරීම සහ වින්‍යාස කිරීම සිදුවනු ඇත.

ඔබට පෙනෙන පරිදි, ඇරඹුම් කාරකය කර්නලය වෙත බොහෝ පරාමිතීන් ලබා දෙයි. මෙම පරාමිතිවලින් සමහරක් කර්නලය විසින්ම භාවිතා කරනු ලැබේ. ඒ වගේම සමහර ඒවා අපේම අරමුණු සඳහා යොදාගන්න පුළුවන්. මෙය පසුව සාකච්ඡා කරනු ඇත, නමුත් දැනට ඔබට මතක තබා ගත හැක්කේ සම්මත වූ සියලුම පරාමිති /proc/cmdline හරහා අතරමැදි ලිනක්ස් රූපයේ ඇති බවයි.

මට ඒවා ලබා ගත හැක්කේ කොහෙන්ද, කර්නලය සහ initramfs?
පදනමක් ලෙස, ඔබට ඕනෑම ලිනක්ස් බෙදාහැරීමක් තෝරාගත හැක. තෝරාගැනීමේදී අප අවධානය යොමු කරන දේ:

  • ඇරඹුම් රූපය විශ්වීය විය යුතුය (ධාවක ලබා ගැනීමේ හැකියාව, අතිරේක උපයෝගිතා ස්ථාපනය කිරීමේ හැකියාව);
  • බොහෝ දුරට, ඔබට initramfs අභිරුචිකරණය කිරීමට අවශ්‍ය වනු ඇත.

X5 සඳහා අපගේ විසඳුමෙහි මෙය සිදු කරන්නේ කෙසේද? CentOS 7 පදනම ලෙස තෝරාගෙන ඇත. අපි පහත උපක්‍රමය උත්සාහ කරමු: අනාගත රූප ව්‍යුහය සකස් කර, එය ලේඛනාගාරයකට ඇසුරුම් කර initramfs සාදන්න, එහි ඇතුළත අපගේ ගොනු පද්ධති සංරක්ෂිතය ඇත. රූපය පූරණය කරන විට, සංරක්ෂිතය නිර්මාණය කරන ලද tmpfs කොටස වෙත පුළුල් කරනු ලැබේ. මේ ආකාරයෙන් අපට අවශ්‍ය සියලුම උපයෝගිතා සහිත අවම, නමුත් සම්පූර්ණ සජීවී ලිනක්ස් රූපයක් ලැබෙනු ඇත, එය ගොනු දෙකකින් පමණක් සමන්විත වේ: 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

එබැවින් අපි පූරණය කළ යුතු කර්නලය සහ initramfs සඳහන් කර ඇත. ප්රතිඵලයක් වශයෙන්, මෙම අදියරේදී, PXE හරහා අතරමැදි ලිනක්ස් රූපය පැටවීමෙන්, අපට OS කොන්සෝලය ලැබෙනු ඇත.

නියමයි, නමුත් දැන් අපි අපගේ "ස්වයංක්රීයකරණය" වෙත පාලනය මාරු කළ යුතුය.

ඒක මේ විදියට කරන්න පුළුවන්.

රූපය පූරණය කිරීමෙන් පසු අපි mount.sh ස්ක්‍රිප්ට් වෙත පාලනය මාරු කිරීමට සැලසුම් කරමු යැයි උපකල්පනය කරමු.
mount.sh ස්ක්‍රිප්ට් එක autorun එකට ඇතුලත් කරමු. මෙය සිදු කිරීම සඳහා ඔබට initramfs වෙනස් කිරීමට අවශ්‍ය වනු ඇත:

  • initramfs unpack (අපි ඉහත 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

ලේබල් මෙවලම් කට්ටලය-ෂෙල්
කර්නලය...
append...nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

ඔබ විසින්ම කරන්න Bare-Metal Provisioning, හෝ මුල සිටම සේවාදායකයන් ස්වයංක්‍රීයව සකස් කිරීම

මෙහි වම් පසින් PXE මෙනුව, දකුණු පසින් පාලන හුවමාරු රූප සටහන වේ.

අපි පාලනය මාරු කිරීම හඳුනා ගත්තා. PXE මෙනුවේ තේරීම මත පදනම්ව, ස්වයංක්‍රීය-වින්‍යාස කිරීමේ ස්ක්‍රිප්ට් හෝ නිදොස් කිරීමේ කොන්සෝලය දියත් කෙරේ.

ස්වයංක්‍රීය වින්‍යාස කිරීමේදී, අවශ්‍ය නාමාවලි ස්ථාපන සේවාදායකයෙන් සවි කර ඇත, ඒවාට ඇතුළත් වන්නේ:

  • ස්ක්‍රිප්ට්;
  • විවිධ සේවාදායකයන් සඳහා සුරකින ලද BIOS/UEFI සැකිලි;
  • ස්ථිරාංග;
  • සේවාදායක උපයෝගිතා;
  • සටහන්

මීළඟට, mount.sh ස්ක්‍රිප්ට් මඟින් පාලනය විධාන නාමාවලියෙන් master-install.sh ස්ක්‍රිප්ට් වෙත මාරු කරයි.

ස්ක්‍රිප්ට් ගස (ඒවා දියත් කරන අනුපිළිවෙල) මේ වගේ දෙයක් පෙනේ:

  • ප්රධාන-ස්ථාපනය
  • බෙදාගැනීම් (බෙදාගත් කාර්යයන්)
  • තොරතුරු (තොරතුරු ප්රතිදානය)
  • ආකෘති (සේවාදායක ආකෘතිය මත පදනම්ව ස්ථාපන පරාමිතීන් සැකසීම)
  • ready_utils (අවශ්‍ය උපයෝගිතා ස්ථාපනය)
  • fwupdate (ස්ථිරාංග යාවත්කාලීන කිරීම)
  • diag (මූලික රෝග විනිශ්චය)
  • biosconf (BIOS/UEFI සැකසුම්)
  • clockfix (මවු පුවරුවේ වේලාව සැකසීම)
  • srmconf (දුරස්ථ අතුරුමුහුණත් වින්‍යාසය)
  • raidconf (තාර්කික වෙළුම් වින්‍යාස කිරීම)

එකක්:

  • පෙර ස්ථාපනය (ESXi වැනි මෙහෙයුම් පද්ධතිය හෝ අධි වයිසර් ස්ථාපකය වෙත පාලනය මාරු කිරීම)
  • ඒකාබද්ධ-ස්ථාපනය (පින්තූරය අසුරන ක්ෂණික ආරම්භය)

දැන් අපි දන්නවා:

  • PXE හරහා සේවාදායකයක් ආරම්භ කරන්නේ කෙසේද;
  • පාලනය ඔබේම ස්ක්‍රිප්ට් වෙත මාරු කරන්නේ කෙසේද.


අපි දිගටම කරගෙන යමු. පහත ප්‍රශ්න අදාළ විය:

  • අපි සූදානම් කරන සේවාදායකය හඳුනා ගන්නේ කෙසේද?
  • කුමන උපයෝගිතා සහ සේවාදායකය වින්‍යාස කරන්නේ කෙසේද?
  • නිශ්චිත සේවාදායකයක් සඳහා සැකසුම් ලබා ගන්නේ කෙසේද?

අපි සූදානම් කරන සේවාදායකය හඳුනා ගන්නේ කෙසේද?

එය සරලයි - DMI:

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

ඔබට අවශ්ය සියල්ල මෙහි ඇත: විකුණුම්කරු, ආකෘතිය, අනුක්රමික අංකය. මෙම තොරතුරු සියලුම සර්වර් වල ඇති බව ඔබට විශ්වාස නැතිනම්, ඔබට ඒවා ඔවුන්ගේ MAC ලිපිනයෙන් හඳුනාගත හැක. නැතහොත් එකවරම ආකාර දෙකෙන්ම, සේවාදායක විකුණුම්කරුවන් වෙනස් නම් සහ සමහර මාදිලිවල අනුක්‍රමික අංකය පිළිබඳ තොරතුරු නොමැත.

ලැබුණු තොරතුරු මත පදනම්ව, ජාල ෆෝල්ඩර ස්ථාපන සේවාදායකයෙන් සවි කර ඇති අතර අවශ්ය සියල්ල පටවනු ලැබේ (උපයෝගිතා, ස්ථිරාංග, ආදිය).

කුමන උපයෝගිතා සහ සේවාදායකය වින්‍යාස කරන්නේ කෙසේද?

මම සමහර නිෂ්පාදකයින් සඳහා Linux සඳහා උපයෝගිතා ලබා දෙන්නෙමි. සියලුම උපයෝගිතා විකුණුම්කරුවන්ගේ නිල වෙබ් අඩවි වලින් ලබා ගත හැකිය.

ඔබ විසින්ම කරන්න Bare-Metal Provisioning, හෝ මුල සිටම සේවාදායකයන් ස්වයංක්‍රීයව සකස් කිරීම

ස්ථිරාංග සමඟ, මම හිතන්නේ සියල්ල පැහැදිලිය. ඒවා සාමාන්‍යයෙන් පැකේජ කරන ලද ක්‍රියාත්මක කළ හැකි ගොනු ආකාරයෙන් පැමිණේ. ක්‍රියාත්මක කළ හැකි ගොනුව ස්ථිරාංග යාවත්කාලීන ක්‍රියාවලිය පාලනය කරන අතර ආපසු කේතය වාර්තා කරයි.

BIOS සහ IPMI සාමාන්‍යයෙන් සැකිලි හරහා වින්‍යාස කර ඇත. අවශ්ය නම්, අච්චුව බාගත කිරීමට පෙර සංස්කරණය කළ හැකිය.

සමහර වෙළෙන්දන්ගෙන් RAID උපයෝගිතා ද සැකිල්ලක් භාවිතයෙන් වින්‍යාසගත කළ හැක. මෙය එසේ නොවේ නම්, ඔබට වින්‍යාස පිටපතක් ලිවීමට සිදුවේ.

RAID පිහිටුවීමේ ක්‍රියා පටිපාටිය බොහෝ විට පහත පරිදි වේ:

  • අපි වත්මන් වින්යාසය ඉල්ලා සිටිමු.
  • දැනටමත් තාර්කික අරාවන් තිබේ නම්, අපි ඒවා මකා දමමු.
  • භෞතික තැටි මොනවාද සහ කොපමණ ප්‍රමාණයක් තිබේද යන්න බලමු.
  • නව තාර්කික අරාවක් සාදන්න. දෝෂයක් ඇති වුවහොත් අපි ක්‍රියාවලියට බාධා කරන්නෙමු.

නිශ්චිත සේවාදායකයක් සඳහා සැකසුම් ලබා ගන්නේ කෙසේද?

සියලුම සේවාදායකයන්ගේ සැකසුම් ස්ථාපන සේවාදායකයේ ගබඩා කරනු ඇතැයි උපකල්පනය කරමු. මෙම අවස්ථාවේදී, අපගේ ප්රශ්නයට පිළිතුරු දීමට, අපි මුලින්ම ස්ථාපන සේවාදායකයට සැකසුම් මාරු කරන්නේ කෙසේදැයි තීරණය කළ යුතුය.

මුලදී, ඔබට පෙළ ගොනු සමඟ ලබා ගත හැකිය. (අනාගතයේදී, ඔබට සැකසුම් මාරු කිරීම සඳහා පසුබැසීමේ ක්‍රමයක් ලෙස පෙළ ගොනුවක් භාවිතා කිරීමට අවශ්‍ය විය හැක.)

ඔබට ස්ථාපන සේවාදායකයේ පෙළ ගොනුවක් "බෙදාගන්න" හැක. තවද එහි මවුන්ට් එක mount.sh ස්ක්‍රිප්ටයට එක් කරන්න.

උදාහරණයක් ලෙස, රේඛා මේ ආකාරයෙන් පෙනෙනු ඇත:

<අනුක්‍රමික අංකය> <ධාරක නාමය> <subnet>

මෙම රේඛා ඉංජිනේරුවරයා විසින් ඔහුගේ වැඩ යන්ත්‍රයෙන් ගොනුව වෙත මාරු කරනු ලැබේ. ඉන්පසුව, සේවාදායකයක් සැකසීමේදී, විශේෂිත සේවාදායකයක් සඳහා වන පරාමිතීන් ගොනුවෙන් කියවනු ලැබේ.

එහෙත්, දිගුකාලීනව, සේවාදායක ස්ථාපනයන්හි සැකසුම්, ප්රාන්ත සහ ලොග් ගබඩා කිරීම සඳහා දත්ත සමුදායක් භාවිතා කිරීම වඩා හොඳය.

ඇත්ත වශයෙන්ම, දත්ත සමුදායක් පමණක් ප්රමාණවත් නොවන අතර, දත්ත සමුදාය වෙත මාරු කරනු ලබන සැකසුම් ආධාරයෙන් ඔබට සේවාදායක කොටසක් නිර්මාණය කිරීමට අවශ්ය වනු ඇත. පෙළ ගොනුවකට සාපේක්ෂව මෙය ක්‍රියාත්මක කිරීම වඩා දුෂ්කර ය, නමුත් ඇත්ත වශයෙන්ම, සෑම දෙයක්ම පෙනෙන තරම් අපහසු නොවේ. ඔබ විසින්ම දත්ත සමුදායට දත්ත මාරු කරන සේවාදායකයෙකුගේ අවම අනුවාදයක් ලිවීම තරමක් හැකි ය. අනාගතයේදී සේවාදායක වැඩසටහන නොමිලේ ප්‍රකාරයේදී වැඩිදියුණු කිරීමට හැකි වනු ඇත (වාර්තා, මුද්‍රණ ලේබල්, මතකයට එන දැනුම්දීම් යැවීම යනාදිය).

දත්ත සමුදායට නිශ්චිත ඉල්ලීමක් කිරීමෙන් සහ සේවාදායක අනුක්රමික අංකය සඳහන් කිරීමෙන්, සේවාදායකය වින්යාස කිරීම සඳහා අවශ්ය පරාමිති අපට ලැබෙනු ඇත.

ඊට අමතරව, පෙළ ගොනුවක මෙන් අපට එකවර ප්‍රවේශය සඳහා අගුලු ඉදිරිපත් කිරීමට අවශ්‍ය නොවනු ඇත.

අපට සෑම අදියරකදීම වින්‍යාස ලොගය දත්ත ගබඩාවට ලිවිය හැකි අතර සූදානම් කිරීමේ අදියරවල සිදුවීම් සහ ධජ හරහා ස්ථාපන ක්‍රියාවලිය පාලනය කළ හැකිය.

දැන් අපි දන්නවා කොහොමද කියලා:

  • PXE හරහා සේවාදායකය ආරම්භ කරන්න;
  • පාලනය අපගේ පිටපතට මාරු කරන්න;
  • එහි අනුක්රමික අංකය අනුව සකස් කළ යුතු සේවාදායකය හඳුනා ගන්න;
  • සුදුසු උපයෝගිතා භාවිතා කරමින් සේවාදායකය වින්‍යාස කරන්න;
  • සේවාදායක කොටස භාවිතා කරමින් ස්ථාපන සේවාදායක දත්ත ගබඩාවට සැකසුම් මාරු කරන්න.

අපි කොහොමද සොයා ගත්තේ:

  • ස්ථාපිත සේවාදායකය දත්ත සමුදායෙන් අවශ්ය සැකසුම් ලබා ගනී;
  • සියලුම සූදානම් කිරීමේ ප්‍රගතිය දත්ත ගබඩාවේ සටහන් වේ (ලඝු-සටහන්, සිදුවීම්, වේදිකා ධජ).

ඔබ ස්ථාපනය කරන විවිධ වර්ගයේ මෘදුකාංග ගැන කුමක් කිව හැකිද? හයිපර්වයිසර් ස්ථාපනය කරන්නේ කෙසේද, වීඑම් එකක් පිටපත් කර සියල්ල වින්‍යාස කරන්නේ කෙසේද?

ගොනු පද්ධති රූපයක් (ලිනක්ස්) දෘඪාංග වෙත යෙදවීමේදී, සියල්ල ඉතා සරල ය:

  • සියලුම සේවාදායක සංරචක සැකසීමෙන් පසු, අපි රූපය යොදන්නෙමු.
  • grub bootloader ස්ථාපනය කරන්න.
  • අපි අවශ්‍ය සියල්ල chroot කර වින්‍යාස කරමු.

OS ස්ථාපකය වෙත පාලනය මාරු කරන්නේ කෙසේද (උදාහරණයක් ලෙස ESXi භාවිතා කිරීම).

  • අපි ස්වයංක්‍රීය ප්‍රතිචාර ගොනුව (kickstart) භාවිතයෙන් අපගේ ස්ක්‍රිප්ට් සිට හයිපර්වයිසර් ස්ථාපකය වෙත පාලනය මාරු කිරීම සංවිධානය කරමු:
  • අපි තැටියේ වත්මන් කොටස් මකා දමමු.
  • 500MB ප්‍රමාණයෙන් කොටසක් සාදන්න.
  • අපි එය ආරම්භ කළ හැකි ලෙස සලකුණු කරමු.
  • FAT32 වෙත හැඩතල ගැන්වීම.
  • අපි ESXi ස්ථාපන ගොනු root වෙත පිටපත් කරමු.
  • 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

අදහස් එක් කරන්න