በራሰ-ብረት አቅርቦት ወይም በራስ ሰር የአገልጋዮችን ከባዶ ማዘጋጀት

ጤና ይስጥልኝ እኔ ዴኒስ ነኝ እና ከተግባሬዎቼ አንዱ በ X5 ላይ የመሠረተ ልማት መፍትሄዎችን ማዘጋጀት ነው። ዛሬ በይፋ በሚገኙ መሳሪያዎች ላይ በመመስረት አውቶማቲክ የአገልጋይ ዝግጅት ስርዓት እንዴት ማሰማራት እንደሚችሉ ላካፍላችሁ እፈልጋለሁ። በእኔ አስተያየት, ይህ አስደሳች, ቀላል እና ተለዋዋጭ መፍትሄ ነው.

በራሰ-ብረት አቅርቦት ወይም በራስ ሰር የአገልጋዮችን ከባዶ ማዘጋጀት

ዝግጅት ስንል፡- አዲስ አገልጋይን ከሳጥኑ ውስጥ ወደ ሙሉ በሙሉ የተዋቀረ ኦኤስ (OS) ማድረግ ነው። ሊኑክስ ወይም ከ ESXi hypervisor ጋር (የዊንዶውስ አገልጋዮች መዘርጋት በዚህ ጽሑፍ ውስጥ አልተብራራም).

ውሎች:

  • አገልጋዮች - ማዋቀር የሚያስፈልጋቸው አገልጋዮች.
  • የመጫኛ አገልጋይ አጠቃላይ የዝግጅት ሂደቱን በኔትወርኩ ላይ የሚያቀርበው ዋና አገልጋይ ነው።

አውቶማቲክ ለምን ያስፈልጋል?

አንድ ተግባር አለ እንበል-አገልጋዮችን ከባዶ ለማዘጋጀት ፣ በከፍተኛ ደረጃ - በቀን 30። የተለያዩ አምራቾች እና ሞዴሎች አገልጋዮች፣ የተለያዩ ስርዓተ ክወናዎች በእነሱ ላይ ሊጫኑ ይችላሉ፣ እና ሃይፐርቫይዘር ላይኖራቸው ይችላል።

በማዋቀር ሂደት ውስጥ ምን ዓይነት ክዋኔዎች ይካተታሉ (ያለ አውቶሜትድ)

  • የቁልፍ ሰሌዳ, መዳፊት, መቆጣጠሪያን ከአገልጋዩ ጋር ያገናኙ;
  • ባዮስ, RAID, IPMI አዋቅር;
  • አካል firmware አዘምን;
  • የፋይል ስርዓት ምስልን ማሰማራት (ወይም ሃይፐርቫይዘርን ይጫኑ እና ምናባዊ ማሽኖችን ይቅዱ);

ማስታወሻ. በአማራጭ፣ የስርዓተ ክወና መዘርጋት የሚቻለው በራስ-ምላሽ ፋይል በመጫን ነው። ነገር ግን ይህ በጽሁፉ ውስጥ አይብራራም. ምንም እንኳን ይህን ተግባር ማከል አስቸጋሪ እንዳልሆነ ከዚህ በታች ያያሉ.

  • የስርዓተ ክወና መለኪያዎችን (የአስተናጋጅ ስም ፣ አይፒ ፣ ወዘተ) ያዋቅሩ።

በዚህ አቀራረብ, በእያንዳንዱ አገልጋይ ላይ ተመሳሳይ ቅንጅቶች በቅደም ተከተል ይከናወናሉ. የእንደዚህ አይነት ስራ ውጤታማነት በጣም ዝቅተኛ ነው.

የአውቶሜሽን ይዘት የሰውን ተሳትፎ ከአገልጋይ ዝግጅት ሂደት ማስወገድ ነው። በተቻለ መጠን.

አውቶሜሽን በኦፕሬሽኖች መካከል ያለውን ጊዜ ይቀንሳል እና ብዙ አገልጋዮችን በአንድ ጊዜ ለማቅረብ ያስችላል። በሰዎች ምክንያቶች የተነሳ ስህተቶች የመከሰቱ አጋጣሚም በእጅጉ ይቀንሳል.

በራሰ-ብረት አቅርቦት ወይም በራስ ሰር የአገልጋዮችን ከባዶ ማዘጋጀት

ሰርቨሮች በራስ ሰር እንዴት ይዋቀራሉ?

ሁሉንም ደረጃዎች በዝርዝር እንመርምር.

እንደ PXE መጫኛ አገልጋይ የሚጠቀሙበት የሊኑክስ አገልጋይ አለዎት። አገልግሎቶቹ በላዩ ላይ ተጭነዋል እና ተዋቅረዋል፡ DHCP፣ TFTP።

ስለዚህ አገልጋዩን (መዋቀር ያለበትን) በ PXE በኩል እናስነሳለን። እንዴት እንደሚሰራ እናስታውስ፡-

  • የአውታረ መረብ ማስነሻ በአገልጋዩ ላይ ተመርጧል.
  • አገልጋዩ የኔትወርክ ካርዱን PXE-ROMን ይጭናል እና የኔትወርክ አድራሻ ለማግኘት የመጫኛ አገልጋዩን በDHCP በኩል ያነጋግራል።
  • የDHCP መጫኛ አገልጋዩ አድራሻ እና እንዲሁም ተጨማሪ በPXE ለማውረድ መመሪያዎችን ይሰጣል።
  • አገልጋዩ የኔትወርክ ቡት ጫኚውን ከመጫኛ አገልጋዩ በPXE በኩል ይጭናል፣ በPXE ውቅር ፋይል መሰረት ተጨማሪ ጭነት ይከሰታል።
  • ቡት የሚከሰተው በተቀበሉት መመዘኛዎች (ከርነል፣ ኢንትራምፍስ፣ ተራራ ነጥቦች፣ የስኳኳፍስ ምስል፣ ወዘተ) ላይ በመመስረት ነው።

ማስታወሻ. ጽሑፉ በ PXE በ BIOS ሁነታ መነሳትን ይገልጻል. በአሁኑ ጊዜ አምራቾች የ UEFI bootmode ን በንቃት በመተግበር ላይ ናቸው። ለ PXE, ልዩነቱ በ DHCP አገልጋይ ውቅር እና ተጨማሪ ቡት ጫኝ መኖር ላይ ይሆናል.

የPXE አገልጋይ ውቅር (pxelinux menu) ምሳሌን እንመልከት።

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=”…”

በዚህ ደረጃ ላይ ያለው ከርነል እና ኢንትራምፍስ መካከለኛ የሊኑክስ ምስል ናቸው, በእሱ እርዳታ የአገልጋዩ ዋና ዝግጅት እና ውቅር ይከናወናል.

እንደሚመለከቱት, ቡት ጫኚው ብዙ መለኪያዎችን ወደ ከርነል ያስተላልፋል. ከእነዚህ መመዘኛዎች ውስጥ አንዳንዶቹ በከርነል በራሱ ጥቅም ላይ ይውላሉ. አንዳንዶቹን ደግሞ ለራሳችን ዓላማ ልንጠቀምበት እንችላለን። ይህ በኋላ ላይ ይብራራል፣ አሁን ግን ሁሉም ያለፉ መለኪያዎች በመካከለኛው ሊኑክስ ምስል በ/proc/cmdline እንደሚገኙ ማስታወስ ይችላሉ።

የት ነው የማገኛቸው፣ ከርነል እና ኢንትራምፍስ?
እንደ መሰረት, ማንኛውንም የሊኑክስ ስርጭት መምረጥ ይችላሉ. በምንመርጥበት ጊዜ ትኩረት የምንሰጠው:

  • የማስነሻ ምስሉ ሁለንተናዊ መሆን አለበት (የአሽከርካሪዎች መገኘት, ተጨማሪ መገልገያዎችን የመጫን ችሎታ);
  • ምናልባትም ፣ ኢንትራምፍስን ማበጀት ያስፈልግዎታል።

በእኛ መፍትሔ ለ X5 ይህ እንዴት ይከናወናል? CentOS 7 እንደ መሰረት ተመረጠ። እስቲ የሚከተለውን ብልሃት እንሞክር፡ የወደፊቱን የምስል መዋቅር አዘጋጅተን ወደ ማህደር አሽገው እና ​​ኢንትራምፍስ እንፍጠር በውስጡ የፋይል ስርዓታችን ማህደር ይኖራል። ምስሉን በሚጫኑበት ጊዜ ማህደሩ ወደ ተፈጠረ 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

ስለዚህ መጫን ያለበትን ከርነል እና ኢንትራምፍስ ገልጸናል። በውጤቱም, በዚህ ደረጃ, መካከለኛውን የሊኑክስ ምስል በ PXE በኩል በመጫን, የስርዓተ ክወናውን ኮንሶል እንቀበላለን.

በጣም ጥሩ, አሁን ግን መቆጣጠሪያውን ወደ "ራስ-ሰር" ማስተላለፍ ያስፈልገናል.

እንደዚህ ማድረግ ይቻላል.

ምስሉን ከጫንን በኋላ መቆጣጠሪያውን ወደ mount.sh ስክሪፕት ለማስተላለፍ እቅድ እንዳለን እናስብ።
የ mount.sh ስክሪፕት በ autorun ውስጥ እናካተት። ይህንን ለማድረግ ኢንትራምፍስን ማስተካከል ያስፈልግዎታል:

  • initramfs ንቀል (ከላይ ያለውን የ initramfs አማራጭ ከተጠቀምን ይህ አያስፈልግም)
  • በ /proc/cmdline በኩል የተላለፉትን መለኪያዎች የሚመረምር እና ተጨማሪ ቁጥጥርን የሚያስተላልፍ ኮድ በጅምር ውስጥ ያካትቱ።
  • ኢንትራምፍስ ያሸጉ.

ማስታወሻ. በ X5 የመሳሪያ ስብስብ ውስጥ, የመጫኛ መቆጣጠሪያ ወደ ስክሪፕቱ ተላልፏል /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

ስለዚህ, ምስሉ ተጭኗል, በውስጡም የmount.sh ስክሪፕት በራስ-ሰር ይጀምራል. በመቀጠል የ mount.sh ስክሪፕት በአፈፃፀም ጊዜ ያለፉትን መለኪያዎች (script_cmd=) ይተነትናል እና አስፈላጊውን ፕሮግራም/ስክሪፕት ይጀምራል።

መለያ መሣሪያ ስብስብ -መኪና
ከርነል...
አባሪ... nfs_toolkit_script=ስክሪፕቶች/mount.sh script_cmd=master-install.sh

መለያ መሣሪያ ስብስብ -ቀለህ
ከርነል...
አባሪ... nfs_toolkit_script=ስክሪፕቶች/mount.sh script_cmd=/ቢን/ባሽ

በራሰ-ብረት አቅርቦት ወይም በራስ ሰር የአገልጋዮችን ከባዶ ማዘጋጀት

እዚህ በግራ በኩል የ PXE ሜኑ ነው ፣ በቀኝ በኩል የቁጥጥር ማስተላለፊያ ዲያግራም አለ።

የቁጥጥር ሽግግርን አውቀናል. በPXE ሜኑ ምርጫ ላይ በመመስረት የራስ-ማዋቀር ስክሪፕት ወይም የማረሚያ ኮንሶል ተጀምሯል።

በራስ-ሰር ውቅር ውስጥ ፣ አስፈላጊዎቹ ማውጫዎች ከመጫኛ አገልጋዩ ተጭነዋል ፣ እነሱም-

  • ስክሪፕቶች;
  • ለተለያዩ አገልጋዮች የተቀመጠ ባዮስ / UEFI አብነቶች;
  • firmware;
  • የአገልጋይ መገልገያዎች;
  • መዝገቦች

በመቀጠል የmount.sh ስክሪፕት መቆጣጠሪያን ከስክሪፕት ማውጫ ወደ master-install.sh ስክሪፕት ያስተላልፋል።

የስክሪፕት ዛፉ (የተጀመሩበት ቅደም ተከተል) ይህን ይመስላል።

  • ዋና-ጫን
  • የተጋሩ ተግባራት (የተጋሩ ተግባራት)
  • መረጃ (የመረጃ ውጤት)
  • ሞዴሎች (በአገልጋዩ ሞዴል ላይ በመመስረት የመጫኛ መለኪያዎችን ማቀናበር)
  • ready_utils (አስፈላጊ መገልገያዎችን መጫን)
  • fwupdate (firmware update)
  • ምርመራ (የመጀመሪያ ደረጃ ምርመራዎች)
  • ባዮስኮንፍ (BIOS/UEFI ቅንብሮች)
  • clockfix (በማዘርቦርድ ላይ ጊዜን ማዘጋጀት)
  • srmconf (የርቀት የበይነገጽ ውቅር)
  • raidconf (አመክንዮአዊ መጠኖችን በማዋቀር)

አንዱ፡-

  • ቅድመ ጫን (ቁጥጥርን ወደ OS ወይም hypervisor ጫኚ በማስተላለፍ ላይ፣ ለምሳሌ ESXi)
  • የተዋሃደ-ጭነት (ምስሉን ማሸግ ወዲያውኑ ይጀምራል)

አሁን እናውቃለን፡-

  • በ PXE በኩል አገልጋይ እንዴት እንደሚነሳ;
  • መቆጣጠሪያን ወደ እራስዎ ስክሪፕት እንዴት ማስተላለፍ እንደሚቻል.


እንቀጥል። የሚከተሉት ጥያቄዎች ተገቢ ሆኑ።

  • እያዘጋጀን ያለነውን አገልጋይ እንዴት መለየት ይቻላል?
  • ምን መገልገያዎች እና አገልጋዩን እንዴት ማዋቀር እንደሚቻል?
  • ለአንድ የተወሰነ አገልጋይ እንዴት ቅንብሮችን ማግኘት ይቻላል?

እያዘጋጀን ያለነውን አገልጋይ እንዴት መለየት ይቻላል?

ቀላል ነው - DMI:

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

የሚያስፈልግዎ ነገር ሁሉ እዚህ አለ: ሻጭ, ሞዴል, ተከታታይ ቁጥር. ይህ መረጃ በሁሉም አገልጋዮች ውስጥ እንደሚገኝ እርግጠኛ ካልሆኑ፣ በ MAC አድራሻቸው ሊለዩዋቸው ይችላሉ። ወይም በሁለቱም መንገዶች በተመሳሳይ ጊዜ, የአገልጋይ አቅራቢዎች የተለያዩ ከሆኑ እና በአንዳንድ ሞዴሎች በቀላሉ ስለ መለያ ቁጥሩ ምንም መረጃ የለም.

በተቀበለው መረጃ ላይ በመመርኮዝ የአውታረ መረብ አቃፊዎች ከመጫኛ አገልጋዩ ላይ ተጭነዋል እና ሁሉም አስፈላጊ ነገሮች ይጫናሉ (መገልገያዎች ፣ firmware ፣ ወዘተ)።

ምን መገልገያዎች እና አገልጋዩን እንዴት ማዋቀር እንደሚቻል?

ለአንዳንድ አምራቾች ለሊኑክስ መገልገያዎችን አቀርባለሁ። ሁሉም መገልገያዎች በአቅራቢዎች ኦፊሴላዊ ድርጣቢያዎች ላይ ይገኛሉ.

በራሰ-ብረት አቅርቦት ወይም በራስ ሰር የአገልጋዮችን ከባዶ ማዘጋጀት

በ firmware ፣ ሁሉም ነገር ግልፅ ነው ብዬ አስባለሁ። ብዙውን ጊዜ የሚመጡት በታሸጉ ሊተገበሩ በሚችሉ ፋይሎች መልክ ነው። ተፈፃሚው ፋይል የጽኑ ትዕዛዝ ማዘመን ሂደቱን ይቆጣጠራል እና የመመለሻ ኮዱን ሪፖርት ያደርጋል።

ባዮስ እና IPMI አብዛኛውን ጊዜ በአብነት ነው የሚዋቀሩት። አስፈላጊ ከሆነ, አብነት ከመውረድዎ በፊት ሊስተካከል ይችላል.

የRAID መገልገያዎች ከአንዳንድ አቅራቢዎች በተጨማሪ አብነት በመጠቀም ሊዋቀሩ ይችላሉ። ጉዳዩ ይህ ካልሆነ ታዲያ የውቅር ስክሪፕት መጻፍ ይኖርብዎታል።

RAID ን የማዋቀር ሂደት ብዙውን ጊዜ እንደሚከተለው ነው-

  • የአሁኑን ውቅር እንጠይቃለን።
  • ቀድሞውኑ ምክንያታዊ ድርድሮች ካሉ, እንሰርዛቸዋለን.
  • ምን ዓይነት ፊዚካል ዲስኮች እንዳሉ እና ምን ያህል እንዳሉ እንመልከት.
  • አዲስ ምክንያታዊ ድርድር ይፍጠሩ። ስህተት ከተፈጠረ ሂደቱን እናቋርጣለን.

ለአንድ የተወሰነ አገልጋይ እንዴት ቅንብሮችን ማግኘት ይቻላል?

የሁሉም አገልጋዮች ቅንጅቶች በመጫኛ አገልጋዩ ላይ እንደሚቀመጡ እናስብ። በዚህ ጉዳይ ላይ ጥያቄያችንን ለመመለስ በመጀመሪያ ቅንብሮቹን ወደ መጫኛ አገልጋይ እንዴት ማስተላለፍ እንዳለብን መወሰን አለብን.

መጀመሪያ ላይ በጽሑፍ ፋይሎች ማግኘት ይችላሉ። (ለወደፊቱ፣ መቼቶችን ለማስተላለፍ የጽሑፍ ፋይል እንደ መመለሻ ዘዴ ልትጠቀም ትችላለህ።)

በመጫኛ አገልጋዩ ላይ የጽሑፍ ፋይል "ማጋራት" ይችላሉ. እና ተራራውን ወደ mount.sh ስክሪፕት ያክሉት።

መስመሮቹ ለምሳሌ ይህን ይመስላል።

<ተከታታይ ቁጥር> <የአስተናጋጅ ስም> <subnet>

እነዚህ መስመሮች መሐንዲሱ ከሥራው ማሽን ወደ ፋይሉ ይዛወራሉ. እና ከዚያ አገልጋይ ሲያዋቅሩ የአንድ የተወሰነ አገልጋይ መለኪያዎች ከፋይሉ ውስጥ ይነበባሉ።

ነገር ግን, በረጅም ጊዜ ውስጥ, ቅንብሮችን, ግዛቶችን እና የአገልጋይ ጭነቶች ምዝግብ ማስታወሻዎችን ለማከማቸት የውሂብ ጎታ መጠቀም የተሻለ ነው.

በእርግጥ የውሂብ ጎታ ብቻውን በቂ አይደለም, እና በየትኛው መቼቶች ወደ የውሂብ ጎታ እንደሚተላለፉ በማገዝ የደንበኛ ክፍል መፍጠር ያስፈልግዎታል. ይህ ከጽሑፍ ፋይል ጋር ሲነጻጸር በጣም አስቸጋሪ ነው, ግን በእውነቱ, ሁሉም ነገር የሚመስለውን ያህል አስቸጋሪ አይደለም. በቀላሉ መረጃን ወደ ዳታቤዝ እራስዎ የሚያስተላልፍ አነስተኛውን የደንበኛ ስሪት መፃፍ በጣም ይቻላል። እና ለወደፊቱ የደንበኛውን ፕሮግራም በነጻ ሁነታ (ሪፖርቶች, የህትመት መለያዎች, ወደ አእምሮ የሚመጣውን ማሳወቂያዎችን መላክ, ወዘተ) ማሻሻል ይቻላል.

ለዳታቤዝ የተወሰነ ጥያቄ በማቅረብ እና የአገልጋዩን መለያ ቁጥር በመግለጽ አገልጋዩን ለማዋቀር አስፈላጊዎቹን መለኪያዎች እንቀበላለን።

በተጨማሪም፣ በጽሑፍ ፋይል ላይ እንደሚደረገው በአንድ ጊዜ ለመዳረሻ ቁልፎችን ማምጣት አያስፈልገንም።

የውቅረት ምዝግብ ማስታወሻውን ወደ ዳታቤዝ በሁሉም ደረጃዎች እንጽፋለን እና የመጫን ሂደቱን በዝግጅቶች እና የዝግጅት ደረጃዎች ባንዲራዎች እንቆጣጠራለን።

አሁን እንዴት እንደሆነ እናውቃለን-

  • በ PXE በኩል አገልጋዩን ማስነሳት;
  • መቆጣጠሪያውን ወደ ስክሪፕታችን ያስተላልፉ;
  • በእሱ ተከታታይ ቁጥር መዘጋጀት ያለበትን አገልጋይ መለየት;
  • ተገቢውን መገልገያዎች በመጠቀም አገልጋዩን ማዋቀር;
  • የደንበኛውን ክፍል በመጠቀም ቅንብሮችን ወደ መጫኛ አገልጋይ ዳታቤዝ ያስተላልፉ።

እንዴት እንደሆነ አውቀናል፡-

  • የተጫነው አገልጋይ ከመረጃ ቋቱ ውስጥ አስፈላጊውን መቼት ይቀበላል;
  • ሁሉም የዝግጅት ሂደት በመረጃ ቋቱ ውስጥ ይመዘገባል (ምዝግብ ማስታወሻዎች ፣ ዝግጅቶች ፣ የመድረክ ባንዲራዎች)።

ስለተጫኑት የተለያዩ የሶፍትዌር አይነቶችስ? ሃይፐርቫይዘርን እንዴት እንደሚጭኑ, ቪኤም ይቅዱ እና ሁሉንም ያዋቅሩት?

የፋይል ስርዓት ምስልን (ሊኑክስ) ወደ ሃርድዌር በማሰማራት ረገድ ሁሉም ነገር በጣም ቀላል ነው-

  • ሁሉንም የአገልጋይ ክፍሎችን ካዘጋጀን በኋላ, ምስሉን እናሰማራለን.
  • grub bootloader ጫን።
  • የሚፈለገውን ነገር ሁሉ ነቅለን እናዋቅራለን።

መቆጣጠሪያውን ወደ OS ጫኚው እንዴት ማስተላለፍ እንደሚቻል (ESXi እንደ ምሳሌ በመጠቀም)።

  • የመቆጣጠሪያውን ከስክሪፕታችን ወደ ሃይፐርቫይዘር ጫኚው አውቶማቲክ ምላሽ ፋይል (kickstart) በመጠቀም እናደራጃለን።
  • አሁን ያሉትን ክፍሎች በዲስክ ላይ እንሰርዛለን.
  • 500MB መጠን ያለው ክፍልፍል ይፍጠሩ።
  • እንደ ማስነሳት ምልክት እናደርጋለን.
  • ወደ FAT32 ቅርጸት።
  • የ ESXi መጫኛ ፋይሎችን ወደ ሼሊ እንቀዳለን.
  • syslinux በመጫን ላይ.
  • syslinux.cfg ወደ /syslinux/ ይቅዱ

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

  • ቡot.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 ፋይል ውስጥ አዘጋጅተናል እና በውስጡ ያለውን የአካላዊ አገልጋይ መለያ ቁጥር አመልክተናል።

አሁን፣ ከተጀመረ በኋላ፣ ቨርቹዋል ማሽኑ (ከቪምዌር-መሳሪያዎች ጥቅል ጋር ከተጫነ) ይህንን ግቤት መድረስ ይችላል።

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

ማለትም ፣ VM እራሱን መለየት ይችላል (የአካላዊ አስተናጋጁን ተከታታይ ቁጥር ያውቃል) ፣ ለመጫኛ አገልጋይ ዳታቤዝ ጥያቄ ያቅርቡ እና ማዋቀር ያለባቸውን መለኪያዎች ይቀበላሉ። ይህ ሁሉ ወደ ስክሪፕት የተጠናቀረ ነው፣ ይህም ጓስቶስ ቪኤም ሲጀምር በራስ ሰር መጀመር አለበት (ግን አንድ ጊዜ፡ RunOnce)።

አሁን እንዴት እንደሆነ እናውቃለን-

  • በ PXE በኩል አገልጋዩን ማስነሳት;
  • መቆጣጠሪያውን ወደ ስክሪፕታችን ያስተላልፉ;
  • በእሱ ተከታታይ ቁጥር መዘጋጀት ያለበትን አገልጋይ መለየት;
  • ተገቢውን መገልገያዎች በመጠቀም አገልጋዩን ማዋቀር;
  • የደንበኛውን ክፍል በመጠቀም ቅንብሮችን ወደ መጫኛ አገልጋይ ዳታቤዝ ያስተላልፉ;
  • የ esxi hypervisor ን ማሰማራት እና ምናባዊ ማሽኖችን (ሁሉም በራስ-ሰር) ማዋቀርን ጨምሮ የተለያዩ የሶፍትዌር አይነቶችን ማዋቀር።

እንዴት እንደሆነ አውቀናል፡-

  • የተጫነው አገልጋይ ከመረጃ ቋቱ ውስጥ አስፈላጊውን መቼት ይቀበላል;
  • ሁሉም የዝግጅት ሂደት በመረጃ ቋቱ ውስጥ ይመዘገባል (ምዝግብ ማስታወሻዎች ፣ ዝግጅቶች ፣ የመድረክ ባንዲራዎች)።


ዋናው ነጥብ:

የዚህ መፍትሔ ልዩነቱ በተለዋዋጭነቱ፣ በቀላልነቱ፣ በችሎታው እና በተለዋዋጭነቱ ላይ ነው ብዬ አምናለሁ።

እባክዎን የሚያስቡትን በአስተያየቶቹ ውስጥ ይፃፉ።

ምንጭ: hab.com

አስተያየት ያክሉ